|
@@ -1,9 +1,76 @@
|
|
|
import mitt from 'mitt'
|
|
|
|
|
|
-export const enter = (canvas) => {
|
|
|
- return {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+export const enter = (prop) => {
|
|
|
|
|
|
- }
|
|
|
+ Potree.settings.isOfficial = true //标记为正式、非测试版本
|
|
|
+
|
|
|
+ Potree.mergeEditStart(prop.canvas)
|
|
|
+ let MergeEditor = viewer.modules.MergeEditor
|
|
|
+
|
|
|
+
|
|
|
+ let addModelFun = (props)=> {
|
|
|
+ let bus = mitt()
|
|
|
+
|
|
|
+ /* type = 'laser' url就是场景码
|
|
|
+ props = {
|
|
|
+ select: boolean,
|
|
|
+ scale: number,
|
|
|
+ opacity: number,
|
|
|
+ bottom: number,
|
|
|
+ position: { x, y, z},
|
|
|
+ rotation: {x, y, z}
|
|
|
+ }
|
|
|
+ addModel({ url, type, props }) */
|
|
|
+ let model
|
|
|
+ let done = (model_)=>{
|
|
|
+ model = model_
|
|
|
+ model.addEventListener('changeSelect',(e)=>{
|
|
|
+ bus.emit('changeSelect',e.selected)
|
|
|
+ })
|
|
|
+ bus.emit('loadDone')
|
|
|
+ }
|
|
|
+ let progressFun = (progress)=>{
|
|
|
+ bus.emit('loadProgress',progress)
|
|
|
+ }
|
|
|
+ Potree.addModel(props, done , progressFun)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ return {
|
|
|
+ changeSelect(state){
|
|
|
+ MergeEditor.selectModel(model, state, true)
|
|
|
+ },
|
|
|
+ changeScale(s){
|
|
|
+ model.scale.set(s,s,s)
|
|
|
+ model.dispatchEvent("scale_changed")
|
|
|
+ },
|
|
|
+ changeOpacity(opacity){
|
|
|
+ model.travese(e=>e.material.opacity = opacity)
|
|
|
+ },
|
|
|
+ changeBottom(z){
|
|
|
+ MergeEditor.setModelBtmHeight(z)
|
|
|
+ },
|
|
|
+ enterRotateMode(){
|
|
|
+ viewer.transformObject(model);
|
|
|
+ viewer.transformationTool.setModeEnable('rotate',true)
|
|
|
+ viewer.transformationTool.setModeEnable('translation',false)
|
|
|
+ },
|
|
|
+ enterMoveMode(){
|
|
|
+ viewer.transformObject(model);
|
|
|
+ viewer.transformationTool.setModeEnable('rotate',false)
|
|
|
+ viewer.transformationTool.setModeEnable('translation',true)
|
|
|
+ },
|
|
|
+ /* leaveRotateMode(){
|
|
|
+
|
|
|
+ } */
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return addModelFun
|
|
|
}
|
|
|
|
|
|
export default enter
|