加入投影机布局选择
This commit is contained in:
parent
fdeb182c75
commit
6c304fdfe6
|
@ -1565,7 +1565,7 @@ export default class ClientConnection {
|
||||||
|
|
||||||
public async SetProjectorLayout(row: number, column: number) {
|
public async SetProjectorLayout(row: number, column: number) {
|
||||||
return await this.doRpc<Protocol.GetBlendingConfigResponseEntity>(
|
return await this.doRpc<Protocol.GetBlendingConfigResponseEntity>(
|
||||||
new Protocol.SetProjectorResolutionRequestEntity(row, column)
|
new Protocol.SetProjectorLayoutRequestEntity(row, column)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
v-model:x="value_point[index].x" v-model:y="value_point[index].y" @activated="options_model = index"
|
v-model:x="value_point[index].x" v-model:y="value_point[index].y" @activated="options_model = index"
|
||||||
@click="options_model = index" @dragging="dragStartHandle($event, index)">
|
@click="options_model = index" @dragging="dragStartHandle($event, index)">
|
||||||
<span>{{
|
<span>{{
|
||||||
index+ 1
|
index + 1
|
||||||
}}</span>
|
}}</span>
|
||||||
</Vue3DraggableResizable>
|
</Vue3DraggableResizable>
|
||||||
</div>
|
</div>
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="row" >
|
<div class="row">
|
||||||
<div class="col-1"></div>
|
<div class="col-1"></div>
|
||||||
<div class="col-2 q-px-md">
|
<div class="col-2 q-px-md">
|
||||||
<div class="col-2"> <q-select class="q-pt-md" :label="$t('point amount')"
|
<div class="col-2"> <q-select class="q-pt-md" :label="$t('point amount')"
|
||||||
|
@ -25,19 +25,14 @@
|
||||||
:options="options_value_point_amount" emit-value map-options />
|
:options="options_value_point_amount" emit-value map-options />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-2" >
|
<div class="col-2">
|
||||||
|
<div class="col-1 q-pt-md "><q-btn color="white" @click="() => { add_dialog = true }" text-color="black"
|
||||||
<!-- <div class="col-1 q-pt-md "><q-btn color="white" @click="()=>{add_dialog;add_control_points(Number(value_point_amount))}"
|
:label="$t('add control points')" /></div>
|
||||||
text-color="black" :label="$t('add control points')" /></div> -->
|
|
||||||
|
|
||||||
<div class="col-1 q-pt-md "><q-btn color="white" @click="()=>{add_dialog=true}"
|
|
||||||
text-color="black" :label="$t('add control points')" /></div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
|
|
||||||
<div class="col-1 q-pt-md "><q-btn color="white" @click="() => { del_dialog = true }" :disable="value_point_amount<=9" text-color="black"
|
<div class="col-1 q-pt-md "><q-btn color="white" @click="() => { del_dialog = true }"
|
||||||
:label="$t('reduce control points')" /></div>
|
:disable="value_point_amount <= 9" text-color="black" :label="$t('reduce control points')" /></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -47,12 +42,11 @@
|
||||||
v-model="options_model" @update:model-value="(val) => { options_model = val }" :options="options" emit-value
|
v-model="options_model" @update:model-value="(val) => { options_model = val }" :options="options" emit-value
|
||||||
map-options /></div>
|
map-options /></div>
|
||||||
<div class="col-2 q-px-md"> <q-input v-if="value[options_model]" filled type="number" class="q-pt-md" :dense="true"
|
<div class="col-2 q-px-md"> <q-input v-if="value[options_model]" filled type="number" class="q-pt-md" :dense="true"
|
||||||
v-model="value[options_model].x" @update:model-value="chang(options_model, $event, 'h')" label="x"
|
v-model="value[options_model].x" @update:model-value="chang(options_model, $event, 'h')" label="x" lazy-rules />
|
||||||
lazy-rules />
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-2 q-px-md"><q-input v-if="value[options_model]" filled type="number" class="q-pt-md" :dense="true"
|
<div class="col-2 q-px-md"><q-input v-if="value[options_model]" filled type="number" class="q-pt-md" :dense="true"
|
||||||
v-model="value[options_model].y" @update:model-value="chang(options_model, $event, 'h')" label="y"
|
v-model="value[options_model].y" @update:model-value="chang(options_model, $event, 'h')" label="y" lazy-rules />
|
||||||
lazy-rules /></div>
|
</div>
|
||||||
<div class="q-pt-md col-2">
|
<div class="q-pt-md col-2">
|
||||||
<q-btn color="white" @click="reset(options_model, true, 'h')" text-color="black" :label="$t('reset')" />
|
<q-btn color="white" @click="reset(options_model, true, 'h')" text-color="black" :label="$t('reset')" />
|
||||||
</div>
|
</div>
|
||||||
|
@ -93,9 +87,13 @@
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-section class="q-pt-none">
|
<q-card-section class="q-pt-none">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-10"><q-input filled v-model="now_amount" min="3" disable type="number" :label="$t('Please enter the points you need to add')" @update:model-value="(val:any)=>{preview(val)}" /></div>
|
<div class="col-10"><q-input filled v-model="now_amount" min="3" disable type="number"
|
||||||
<div class="col-1 q-pa-sm"> <q-btn color="white" text-color="black" label="↑" @click="()=>{preview(Math.sqrt(now_amount)+1)}" /> </div>
|
:label="$t('Please enter the points you need to add')" @update:model-value="(val: any) => { preview(val) }" />
|
||||||
<div class="col-1 q-pa-sm"> <q-btn color="white" text-color="black" label="↓" @click="()=>{preview(Math.sqrt(now_amount)-1)}"/></div>
|
</div>
|
||||||
|
<div class="col-1 q-pa-sm"> <q-btn color="white" text-color="black" label="↑"
|
||||||
|
@click="() => { preview(Math.sqrt(now_amount) + 1) }" /> </div>
|
||||||
|
<div class="col-1 q-pa-sm"> <q-btn color="white" text-color="black" label="↓"
|
||||||
|
@click="() => { preview(Math.sqrt(now_amount) - 1) }" /></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
|
@ -104,8 +102,7 @@
|
||||||
<q-btn flat :label="$t('ok')" @click="add" color="primary" v-close-popup />
|
<q-btn flat :label="$t('ok')" @click="add" color="primary" v-close-popup />
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
@ -173,7 +170,7 @@ export default defineComponent({
|
||||||
const value_point_amount = ref(9)
|
const value_point_amount = ref(9)
|
||||||
const del_dialog = ref(false)
|
const del_dialog = ref(false)
|
||||||
const add_dialog = ref(false)
|
const add_dialog = ref(false)
|
||||||
const now_amount=ref(9)
|
const now_amount = ref(9)
|
||||||
const options_value_point_amount = ref(<string[]>[])
|
const options_value_point_amount = ref(<string[]>[])
|
||||||
|
|
||||||
const deepcopy = (o1: any, o2: any) => {
|
const deepcopy = (o1: any, o2: any) => {
|
||||||
|
@ -189,7 +186,7 @@ export default defineComponent({
|
||||||
};
|
};
|
||||||
|
|
||||||
const use_server_config = () => {
|
const use_server_config = () => {
|
||||||
value_point_amount.value=9
|
value_point_amount.value = 9
|
||||||
let a = 9
|
let a = 9
|
||||||
value.value = []
|
value.value = []
|
||||||
value_point.value = []
|
value_point.value = []
|
||||||
|
@ -220,7 +217,7 @@ export default defineComponent({
|
||||||
}
|
}
|
||||||
|
|
||||||
const save_set_cache = () => {
|
const save_set_cache = () => {
|
||||||
let tmp = { value: value.value, value_point_amount: value_point_amount.value, value_point: value_point.value}
|
let tmp = { value: value.value, value_point_amount: value_point_amount.value, value_point: value_point.value }
|
||||||
set_cache.value[selectedprojector.value] = JSON.stringify(tmp);
|
set_cache.value[selectedprojector.value] = JSON.stringify(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -421,9 +418,9 @@ export default defineComponent({
|
||||||
value_point.value[index].y = Math.trunc(tmp.y)
|
value_point.value[index].y = Math.trunc(tmp.y)
|
||||||
value_point.value[index].x = Math.trunc(tmp.x)
|
value_point.value[index].x = Math.trunc(tmp.x)
|
||||||
}
|
}
|
||||||
send_value(-1,0,0)
|
send_value(-1, 0, 0)
|
||||||
}
|
}
|
||||||
const resetall_all=()=>{
|
const resetall_all = () => {
|
||||||
for (let index = 0; index < value_point.value.length; index++) {
|
for (let index = 0; index < value_point.value.length; index++) {
|
||||||
value.value[index].x = value.value[index].def_x
|
value.value[index].x = value.value[index].def_x
|
||||||
value.value[index].y = value.value[index].def_y
|
value.value[index].y = value.value[index].def_y
|
||||||
|
@ -431,7 +428,7 @@ export default defineComponent({
|
||||||
value_point.value[index].y = Math.trunc(tmp.y)
|
value_point.value[index].y = Math.trunc(tmp.y)
|
||||||
value_point.value[index].x = Math.trunc(tmp.x)
|
value_point.value[index].x = Math.trunc(tmp.x)
|
||||||
}
|
}
|
||||||
send_value(-2,0,0)
|
send_value(-2, 0, 0)
|
||||||
|
|
||||||
for (let key in config.multi_curved_surface) {
|
for (let key in config.multi_curved_surface) {
|
||||||
for (let index = 0; index < config.multi_curved_surface[key].length; index++) {
|
for (let index = 0; index < config.multi_curved_surface[key].length; index++) {
|
||||||
|
@ -512,7 +509,7 @@ export default defineComponent({
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
const del_control_points = (amount: number) => {
|
const del_control_points = (amount: number) => {
|
||||||
let tmp=amount
|
let tmp = amount
|
||||||
if (amount <= 9) return
|
if (amount <= 9) return
|
||||||
let cardinality = Math.sqrt(amount)
|
let cardinality = Math.sqrt(amount)
|
||||||
amount = (cardinality + -1) ** 2
|
amount = (cardinality + -1) ** 2
|
||||||
|
@ -541,8 +538,8 @@ export default defineComponent({
|
||||||
options_value_point_amount.value.push(key)
|
options_value_point_amount.value.push(key)
|
||||||
}
|
}
|
||||||
value_point_amount.value = 9
|
value_point_amount.value = 9
|
||||||
amount=9
|
amount = 9
|
||||||
now_amount.value=9
|
now_amount.value = 9
|
||||||
$store.commit("setfusion_configuration", res?.config);
|
$store.commit("setfusion_configuration", res?.config);
|
||||||
value.value = []
|
value.value = []
|
||||||
value_point.value = []
|
value_point.value = []
|
||||||
|
@ -563,7 +560,7 @@ export default defineComponent({
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
const add=()=>{
|
const add = () => {
|
||||||
let tmpconfig: any = null
|
let tmpconfig: any = null
|
||||||
let row = $store.getters.GetTheCurrentlySelectedCamera[0]
|
let row = $store.getters.GetTheCurrentlySelectedCamera[0]
|
||||||
let col = $store.getters.GetTheCurrentlySelectedCamera[1]
|
let col = $store.getters.GetTheCurrentlySelectedCamera[1]
|
||||||
|
@ -612,16 +609,16 @@ export default defineComponent({
|
||||||
}
|
}
|
||||||
const preview = (val: number) => {
|
const preview = (val: number) => {
|
||||||
val = Number(val)
|
val = Number(val)
|
||||||
if(val<3)return
|
if (val < 3) return
|
||||||
let width = allconfig.projector_width / (val - 1)
|
let width = allconfig.projector_width / (val - 1)
|
||||||
let height = allconfig.projector_height / (val - 1)
|
let height = allconfig.projector_height / (val - 1)
|
||||||
value.value = []
|
value.value = []
|
||||||
value_point.value = []
|
value_point.value = []
|
||||||
for (let index = 0; index < val; index++) {
|
for (let index = 0; index < val; index++) {
|
||||||
for (let indexx = 0; indexx < val; indexx++) {
|
for (let indexx = 0; indexx < val; indexx++) {
|
||||||
let y=allconfig.projector_height-height*index
|
let y = allconfig.projector_height - height * index
|
||||||
let x=width*indexx
|
let x = width * indexx
|
||||||
let tmp: DensityCorrectionPoint = {x,y,def_x:x,def_y:y,control_point:index+indexx+1};
|
let tmp: DensityCorrectionPoint = { x, y, def_x: x, def_y: y, control_point: index + indexx + 1 };
|
||||||
value.value.push(tmp)
|
value.value.push(tmp)
|
||||||
let x_y = coordinate_transformation_value_to_xy(tmp.x, tmp.y)
|
let x_y = coordinate_transformation_value_to_xy(tmp.x, tmp.y)
|
||||||
let def_x_f = coordinate_transformation_value_to_xy(tmp.def_x, tmp.def_y)
|
let def_x_f = coordinate_transformation_value_to_xy(tmp.def_x, tmp.def_y)
|
||||||
|
@ -635,9 +632,9 @@ export default defineComponent({
|
||||||
value_point.value.push(tmp_point)
|
value_point.value.push(tmp_point)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
now_amount.value=val**2
|
now_amount.value = val ** 2
|
||||||
value_point_amount.value=val**2
|
value_point_amount.value = val ** 2
|
||||||
options_model.value=1
|
options_model.value = 1
|
||||||
}
|
}
|
||||||
defineExpose({
|
defineExpose({
|
||||||
options_model,
|
options_model,
|
||||||
|
|
|
@ -50,6 +50,9 @@
|
||||||
<div class="col-3 q-px-md"> <q-select class="q-pt-md " :label="$t('change resolution')"
|
<div class="col-3 q-px-md"> <q-select class="q-pt-md " :label="$t('change resolution')"
|
||||||
@update:model-value="(val) => { set_resolution(val) }" :dense="true" filled v-model="now_resolution"
|
@update:model-value="(val) => { set_resolution(val) }" :dense="true" filled v-model="now_resolution"
|
||||||
:options="options_resolution" emit-value map-options /></div>
|
:options="options_resolution" emit-value map-options /></div>
|
||||||
|
<div class="col-3 q-px-md"> <q-select class="q-pt-md " :label="$t('Change projector layout')"
|
||||||
|
@update:model-value="(val) => { send_projectorlayout(val) }" :dense="true" filled v-model="now_select_projectorlayout"
|
||||||
|
:options="projectorlayout" emit-value map-options /></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-10">
|
<div class="col-10">
|
||||||
<div class="q-ta-md">
|
<div class="q-ta-md">
|
||||||
|
@ -345,7 +348,7 @@ export default defineComponent({
|
||||||
const config = ref({ col: 0, row: 0 });
|
const config = ref({ col: 0, row: 0 });
|
||||||
const EnableBlending = ref(false);
|
const EnableBlending = ref(false);
|
||||||
let optionsstr = ref();
|
let optionsstr = ref();
|
||||||
optionsstr.value = "FusionLocale";
|
optionsstr.value = "";
|
||||||
const disable_blending_params_id = ref("blending@disable_blending_params");
|
const disable_blending_params_id = ref("blending@disable_blending_params");
|
||||||
const disable_blending_params = ref(false);
|
const disable_blending_params = ref(false);
|
||||||
const show_blending_grids_id = ref("blending_grids_show");
|
const show_blending_grids_id = ref("blending_grids_show");
|
||||||
|
@ -448,7 +451,7 @@ export default defineComponent({
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
clear_sessionStorage()
|
clear_sessionStorage()
|
||||||
}, 500);
|
}, 500);
|
||||||
getconfig()
|
//getconfig()
|
||||||
options.value = "FusionLocale"
|
options.value = "FusionLocale"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -500,6 +503,7 @@ export default defineComponent({
|
||||||
});
|
});
|
||||||
get_scenes()
|
get_scenes()
|
||||||
set?.SetBlendingOption("blending_grids_select_ui", "blending")
|
set?.SetBlendingOption("blending_grids_select_ui", "blending")
|
||||||
|
optionsstr.value = "FusionLocale";
|
||||||
}, 1000);
|
}, 1000);
|
||||||
});
|
});
|
||||||
const save_cover_name = ref("")
|
const save_cover_name = ref("")
|
||||||
|
@ -568,6 +572,33 @@ export default defineComponent({
|
||||||
set?.SetBlendingOption('blending_grids_select_projector', value);
|
set?.SetBlendingOption('blending_grids_select_projector', value);
|
||||||
now_selsect_projector.value=value
|
now_selsect_projector.value=value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置投影机布局
|
||||||
|
*/
|
||||||
|
const projectorlayout=[{label:'1x1',value:0},{label:'1x2',value:1}]
|
||||||
|
const now_select_projectorlayout=ref(1)
|
||||||
|
const send_projectorlayout=(val:number) => {
|
||||||
|
let arr = projectorlayout[val].label.split('x');
|
||||||
|
set?.SetProjectorLayout(Number(arr[0]),Number(arr[1])).then(res => {
|
||||||
|
let tmpp=JSON.parse(res!.config)
|
||||||
|
config.value.row = tmpp.row;
|
||||||
|
config.value.col = tmpp.col;
|
||||||
|
$q.loading.show({
|
||||||
|
message: 'Loading please wait'
|
||||||
|
})
|
||||||
|
$store.commit("setfusion_configuration", res?.config);
|
||||||
|
let tmp = options.value
|
||||||
|
options.value = ""
|
||||||
|
$store.commit("setSelectedProjector", "0/0");
|
||||||
|
setTimeout(() => {
|
||||||
|
clear_sessionStorage()
|
||||||
|
options.value = tmp
|
||||||
|
$q.loading.hide()
|
||||||
|
}, 800);
|
||||||
|
getconfig()
|
||||||
|
})
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
currently_selected_projector,
|
currently_selected_projector,
|
||||||
name_to_be_deleted,
|
name_to_be_deleted,
|
||||||
|
@ -604,7 +635,10 @@ export default defineComponent({
|
||||||
child,
|
child,
|
||||||
options_resolution,
|
options_resolution,
|
||||||
now_resolution,
|
now_resolution,
|
||||||
set_resolution
|
set_resolution,
|
||||||
|
send_projectorlayout,
|
||||||
|
now_select_projectorlayout,
|
||||||
|
projectorlayout
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -3703,7 +3703,7 @@ export namespace Protocol {
|
||||||
export class SetProjectorLayoutRequestEntity extends PacketEntity {
|
export class SetProjectorLayoutRequestEntity extends PacketEntity {
|
||||||
constructor(row: number, column: number, rpc_id = 0) {
|
constructor(row: number, column: number, rpc_id = 0) {
|
||||||
super();
|
super();
|
||||||
super.command = Commands.kSetProjectorResolution;
|
super.command = Commands.kSetProjectorLayout;
|
||||||
super.flag = PacketEntity.FLAG_REQUEST;
|
super.flag = PacketEntity.FLAG_REQUEST;
|
||||||
super.rpc_id = rpc_id;
|
super.rpc_id = rpc_id;
|
||||||
|
|
||||||
|
|
|
@ -493,5 +493,6 @@ export default {
|
||||||
"The Folder Name Cannot Start With a '.'",
|
"The Folder Name Cannot Start With a '.'",
|
||||||
"change resolution":"change resolution",
|
"change resolution":"change resolution",
|
||||||
"Loading please wait":"Loading please wait",
|
"Loading please wait":"Loading please wait",
|
||||||
"Please enter the square number":"Please enter the square number"
|
"Please enter the square number":"Please enter the square number",
|
||||||
|
"Change projector layout":"Change projector layout"
|
||||||
};
|
};
|
||||||
|
|
|
@ -761,5 +761,6 @@ export default {
|
||||||
"Version Mismatch !": "版本不匹配!",
|
"Version Mismatch !": "版本不匹配!",
|
||||||
"Version Mismatch ! Please Upgrade The Software Again ! Otherwise, The File Function Cannot Be Used !":
|
"Version Mismatch ! Please Upgrade The Software Again ! Otherwise, The File Function Cannot Be Used !":
|
||||||
"版本不匹配!请重新升级软件!否则文件功能无法正常使用!",
|
"版本不匹配!请重新升级软件!否则文件功能无法正常使用!",
|
||||||
"Please enter the square number":"请输入平方数"
|
"Please enter the square number":"请输入平方数",
|
||||||
|
"Change projector layout":"更改投影机布局"
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue