base.js 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546
  1. /**
  2. * base.js
  3. *
  4. * @author realor
  5. */
  6. import { NewSceneTool } from '../tools/NewSceneTool.js'
  7. //import { CloudExplorerTool } from '../tools/CloudExplorerTool.js'
  8. import { OpenLocalTool } from '../tools/OpenLocalTool.js'
  9. import { SaveLocalTool } from '../tools/SaveLocalTool.js'
  10. import { OptionsTool } from '../tools/OptionsTool.js'
  11. //import { PrintTool } from '../tools/PrintTool.js'
  12. import { SVGExporterTool } from '../tools/SVGExporterTool.js'
  13. import { SelectTool } from '../tools/SelectTool.js'
  14. import { SelectParentTool } from '../tools/SelectParentTool.js'
  15. //import { SelectByNameTool } from '../tools/SelectByNameTool.js'
  16. //import { SelectByPropertyTool } from '../tools/SelectByPropertyTool.js'
  17. //import { SelectByQRCodeTool } from '../tools/SelectByQRCodeTool.js'
  18. //import { ExportSelectionTool } from '../tools/ExportSelectionTool.js'
  19. import { OrbitTool } from '../tools/OrbitTool.js'
  20. import { FlyTool } from '../tools/FlyTool.js'
  21. import { PanoramaTool } from '../tools/PanoramaTool.js' //add
  22. import { ViewTool } from '../tools/ViewTool.js'
  23. import { AutoOrbitTool } from '../tools/AutoOrbitTool.js'
  24. import { SectionTool } from '../tools/SectionTool.js'
  25. import { InspectGeometryTool } from '../tools/InspectGeometryTool.js'
  26. import { ResetMatrixTool } from '../tools/ResetMatrixTool.js'
  27. import { SmoothEdgesTool } from '../tools/SmoothEdgesTool.js'
  28. //import { RebuildTool } from '../tools/RebuildTool.js'
  29. // import { MoveTool } from '../tools/MoveTool.js'
  30. // import { RotateTool } from '../tools/RotateTool.js'
  31. // import { ScaleTool } from '../tools/ScaleTool.js'
  32. // import { PlaceTool } from '../tools/PlaceTool.js'
  33. //import { BooleanOperationTool } from '../tools/BooleanOperationTool.js'
  34. //import { ExtrudeTool } from '../tools/ExtrudeTool.js'
  35. //import { RevolveTool } from '../tools/RevolveTool.js'
  36. import { MeshToSolidTool } from '../tools/MeshToSolidTool.js'
  37. import { SolidToMeshTool } from '../tools/SolidToMeshTool.js'
  38. import { MergeGeometriesTool } from '../tools/MergeGeometriesTool.js'
  39. import { DrawTool } from '../tools/DrawTool.js'
  40. import { MeasureLengthTool } from '../tools/MeasureLengthTool.js'
  41. import { MeasureSelectionTool } from '../tools/MeasureSelectionTool.js'
  42. import { ActivateCameraTool } from '../tools/ActivateCameraTool.js'
  43. import { CameraProjectionTool } from '../tools/CameraProjectionTool.js'
  44. import { AddObjectTool } from '../tools/AddObjectTool.js'
  45. import { RemoveTool } from '../tools/RemoveTool.js'
  46. import { CloneTool } from '../tools/CloneTool.js'
  47. import { CutTool } from '../tools/CutTool.js'
  48. import { PasteTool } from '../tools/PasteTool.js'
  49. import { ZoomAllTool } from '../tools/ZoomAllTool.js'
  50. import { FullscreenTool } from '../tools/FullscreenTool.js'
  51. //import { CenterSelectionTool } from '../tools/CenterSelectionTool.js'
  52. import { VisibilityTool } from '../tools/VisibilityTool.js'
  53. import { StyleTool } from '../tools/StyleTool.js'
  54. import { PaintTool } from '../tools/PaintTool.js'
  55. import { OutlinerTool } from '../tools/OutlinerTool.js'
  56. import { InspectorTool } from '../tools/InspectorTool.js'
  57. import { StatisticsTool } from '../tools/StatisticsTool.js'
  58. // import { StartControllersTool } from '../tools/StartControllersTool.js'
  59. // import { StopControllersTool } from '../tools/StopControllersTool.js'
  60. //import { ScriptTool } from '../tools/ScriptTool.js'
  61. //import { AboutTool } from '../tools/AboutTool.js'
  62. import { OpenLinkTool } from '../tools/OpenLinkTool.js'
  63. import { BooleanOperator } from '../builders/BooleanOperator.js'
  64. import { GeometryMerger } from '../builders/GeometryMerger.js'
  65. import { RectangleBuilder } from '../builders/RectangleBuilder.js'
  66. import { CircleBuilder } from '../builders/CircleBuilder.js'
  67. import { EllipseBuilder } from '../builders/EllipseBuilder.js'
  68. import { IProfileBuilder } from '../builders/IProfileBuilder.js'
  69. import { LProfileBuilder } from '../builders/LProfileBuilder.js'
  70. import { TProfileBuilder } from '../builders/TProfileBuilder.js'
  71. import { UProfileBuilder } from '../builders/UProfileBuilder.js'
  72. import { ZProfileBuilder } from '../builders/ZProfileBuilder.js'
  73. import { TrapeziumBuilder } from '../builders/TrapeziumBuilder.js'
  74. import { HelicoidBuilder } from '../builders/HelicoidBuilder.js'
  75. import { Brain4itPostController } from '../controllers/Brain4itPostController.js'
  76. import { Brain4itWatchController } from '../controllers/Brain4itWatchController.js'
  77. import { ColorController } from '../controllers/ColorController.js'
  78. import { DisplayController } from '../controllers/DisplayController.js'
  79. import { LightController } from '../controllers/LightController.js'
  80. import { LoadController } from '../controllers/LoadController.js'
  81. import { ProximityController } from '../controllers/ProximityController.js'
  82. import { PushButtonController } from '../controllers/PushButtonController.js'
  83. import { RotationController } from '../controllers/RotationController.js'
  84. import { ToggleButtonController } from '../controllers/ToggleButtonController.js'
  85. import { TranslationController } from '../controllers/TranslationController.js'
  86. import { BRFLoader } from '../io/BRFLoader.js'
  87. import { BRFExporter } from '../io/BRFExporter.js'
  88. import { ColladaLoader } from '../io/ColladaLoader.js'
  89. import { ColladaExporter } from '../io/ColladaExporter.js'
  90. import { OBJLoader } from '../io/OBJLoader.js'
  91. import { OBJExporter } from '../io/OBJExporter.js'
  92. import { STLLoader } from '../io/STLLoader.js'
  93. import { STLExporter } from '../io/STLExporter.js'
  94. import { GLTFLoader } from '../io/GLTFLoader.js'
  95. import { GLTFExporter } from '../io/GLTFExporter.js'
  96. import { IOManager } from '../io/IOManager.js'
  97. import { WebdavService } from '../io/WebdavService.js'
  98. import { BundleManager } from '../i18n/BundleManager.js'
  99. import * as THREE from '../lib/three.module.js'
  100. export function load(application) {
  101. // register formats
  102. IOManager.formats['brf'] = {
  103. description: '4DAGE (*.brf)',
  104. extensions: ['brf'],
  105. mimeType: 'application/json',
  106. loader: {
  107. class: BRFLoader,
  108. loadMethod: 0,
  109. dataType: 'text'
  110. },
  111. exporter: {
  112. class: BRFExporter,
  113. exportMethod: 0
  114. }
  115. }
  116. IOManager.formats['dae'] = {
  117. description: 'Collada (*.dae)',
  118. extensions: ['dae'],
  119. mimeType: 'model/vnd.collada+xml',
  120. loader: {
  121. class: ColladaLoader,
  122. loadMethod: 1,
  123. dataType: 'text'
  124. },
  125. exporter: {
  126. class: ColladaExporter,
  127. exportMethod: 0
  128. }
  129. }
  130. IOManager.formats['obj'] = {
  131. description: 'Wavefront object (*.obj)',
  132. extensions: ['obj'],
  133. mimeType: 'model/obj',
  134. loader: {
  135. class: OBJLoader,
  136. loadMethod: 0,
  137. dataType: 'text'
  138. },
  139. exporter: {
  140. class: OBJExporter,
  141. exportMethod: 0
  142. }
  143. }
  144. IOManager.formats['stl'] = {
  145. description: 'Stereolithography (*.stl)',
  146. extensions: ['stl'],
  147. mimeType: 'model/stl',
  148. loader: {
  149. class: STLLoader,
  150. loadMethod: 0,
  151. dataType: 'arraybuffer'
  152. },
  153. exporter: {
  154. class: STLExporter,
  155. exportMethod: 0
  156. }
  157. }
  158. IOManager.formats['gltf'] = {
  159. description: 'GL Transmission Format (*.gltf)',
  160. extensions: ['gltf'],
  161. mimeType: 'model/gltf-json',
  162. loader: {
  163. class: GLTFLoader,
  164. loadMethod: 3,
  165. dataType: 'arraybuffer'
  166. },
  167. exporter: {
  168. class: GLTFExporter,
  169. exportMethod: 1,
  170. options: { binary: false }
  171. }
  172. }
  173. IOManager.formats['glb'] = {
  174. description: 'GL Transmission Format (*.glb)',
  175. extensions: ['glb'],
  176. mimeType: 'model/gltf-binary',
  177. loader: {
  178. class: GLTFLoader,
  179. loadMethod: 3,
  180. dataType: 'arraybuffer'
  181. },
  182. exporter: {
  183. class: GLTFExporter,
  184. exportMethod: 1,
  185. options: { binary: true }
  186. }
  187. }
  188. // create tools
  189. const newSceneTool = new NewSceneTool(application)
  190. //const cloudExplorerTool = new CloudExplorerTool(application)
  191. const openLocalTool = new OpenLocalTool(application)
  192. const saveLocalTool = new SaveLocalTool(application)
  193. const optionsTool = new OptionsTool(application)
  194. //const printTool = new PrintTool(application)
  195. const svgExporterTool = new SVGExporterTool(application)
  196. const selectTool = new SelectTool(application)
  197. const selectParentTool = new SelectParentTool(application)
  198. //const selectByPropertyTool = new SelectByPropertyTool(application)
  199. //const selectByQRCodeTool = new SelectByQRCodeTool(application)
  200. //const selectReprTool = new SelectByNameTool(application, { name: 'IfcRepresentation', label: 'IfcRepresentation', propertyName: 'IfcRepresentation' })
  201. //const exportSelectionTool = new ExportSelectionTool(application)
  202. const orbitTool = new OrbitTool(application)
  203. const panoramaTool = new PanoramaTool(application) //add
  204. const flyTool = new FlyTool(application)
  205. const topViewTool = new ViewTool(application, { name: 'top', label: 'tool.view.top', x: 0, y: 0, z: 0, keyShortcut: 'Shift+T' })
  206. const frontViewTool = new ViewTool(application, { name: 'front', label: 'tool.view.front', x: 90, y: 0, z: 0, keyShortcut: 'Shift+F' })
  207. const backViewTool = new ViewTool(application, { name: 'back', label: 'tool.view.back', x: -90, y: 0, z: 180, keyShortcut: 'Shift+B' })
  208. const leftViewTool = new ViewTool(application, { name: 'left', label: 'tool.view.left', x: 90, y: 90, z: 0, keyShortcut: 'Shift+L' })
  209. const rightViewTool = new ViewTool(application, { name: 'right', label: 'tool.view.right', x: -90, y: -90, z: 180, keyShortcut: 'Shift+R' })
  210. const autoOrbitTool = new AutoOrbitTool(application)
  211. const sectionTool = new SectionTool(application)
  212. const inspectGeometryTool = new InspectGeometryTool(application)
  213. const resetMatrixTool = new ResetMatrixTool(application)
  214. const smoothEdgesTool = new SmoothEdgesTool(application)
  215. //const scriptTool = new ScriptTool(application)
  216. //const rebuildTool = new RebuildTool(application)
  217. // const moveTool = new MoveTool(application)
  218. // const rotateTool = new RotateTool(application)
  219. // const scaleTool = new ScaleTool(application)
  220. // const placeTool = new PlaceTool(application)
  221. // const extrudeTool = new ExtrudeTool(application)
  222. // const revolveTool = new RevolveTool(application)
  223. // const unionTool = new BooleanOperationTool(application, { name: 'union', label: 'tool.union.label', operation: BooleanOperator.UNION })
  224. // const intersectionTool = new BooleanOperationTool(application, { name: 'intersection', label: 'tool.intersection.label', operation: BooleanOperator.INTERSECT })
  225. // const subtractionTool = new BooleanOperationTool(application, { name: 'subtraction', label: 'tool.subtraction.label', operation: BooleanOperator.SUBTRACT })
  226. const meshToSolidTool = new MeshToSolidTool(application)
  227. const solidToMeshTool = new SolidToMeshTool(application)
  228. const mergeGeometriesTool = new MergeGeometriesTool(application)
  229. const drawTool = new DrawTool(application)
  230. const measureLengthTool = new MeasureLengthTool(application)
  231. const measureSelectionTool = new MeasureSelectionTool(application)
  232. const activateCameraTool = new ActivateCameraTool(application)
  233. const perspectiveTool = new CameraProjectionTool(application, { name: 'perspective', label: 'tool.perspective.label', type: 'perspective', keyShortcut: 'Shift+P' })
  234. const orthographicTool = new CameraProjectionTool(application, { name: 'orthographic', label: 'tool.orthographic.label', type: 'orthographic', keyShortcut: 'Shift+O' })
  235. const addBoxTool = new AddObjectTool(application, { name: 'add_box', label: 'tool.add_box.label', objectType: 'Box' })
  236. const addCylinderTool = new AddObjectTool(application, { name: 'add_cylinder', label: 'tool.add_cylinder.label', objectType: 'Cylinder' })
  237. const addSphereTool = new AddObjectTool(application, { name: 'add_sphere', label: 'tool.add_sphere.label', objectType: 'Sphere' })
  238. const addSpringTool = new AddObjectTool(application, { name: 'add_spring', label: 'tool.add_spring.label', objectType: 'Spring' })
  239. const addRectangleTool = new AddObjectTool(application, { name: 'add_rectangle', label: 'tool.add_rectangle.label', objectType: 'Profile', builderClass: RectangleBuilder })
  240. const addCircleTool = new AddObjectTool(application, { name: 'add_circle', label: 'tool.add_circle.label', objectType: 'Profile', builderClass: CircleBuilder })
  241. const addEllipseTool = new AddObjectTool(application, { name: 'add_ellipse', label: 'tool.add_ellipse.label', objectType: 'Profile', builderClass: EllipseBuilder })
  242. const addTrapeziumTool = new AddObjectTool(application, { name: 'add_trapezium', label: 'tool.add_trapezium.label', objectType: 'Profile', builderClass: TrapeziumBuilder })
  243. const addIProfileTool = new AddObjectTool(application, { name: 'add_iprofile', label: 'tool.add_iprofile.label', objectType: 'Profile', builderClass: IProfileBuilder })
  244. const addLProfileTool = new AddObjectTool(application, { name: 'add_lprofile', label: 'tool.add_lprofile.label', objectType: 'Profile', builderClass: LProfileBuilder })
  245. const addTProfileTool = new AddObjectTool(application, { name: 'add_tprofile', label: 'tool.add_tprofile.label', objectType: 'Profile', builderClass: TProfileBuilder })
  246. const addUProfileTool = new AddObjectTool(application, { name: 'add_uprofile', label: 'tool.add_uprofile.label', objectType: 'Profile', builderClass: UProfileBuilder })
  247. const addZProfileTool = new AddObjectTool(application, { name: 'add_zprofile', label: 'tool.add_zprofile.label', objectType: 'Profile', builderClass: ZProfileBuilder })
  248. const addHelicoidTool = new AddObjectTool(application, { name: 'add_helicoid', label: 'tool.add_helicoid.label', objectType: 'Cord', builderClass: HelicoidBuilder })
  249. const addGroupTool = new AddObjectTool(application, { name: 'add_group', label: 'tool.add_group.label', objectType: 'Group' })
  250. const addSpriteTool = new AddObjectTool(application, { name: 'add_sprite', label: 'tool.add_sprite.label', objectType: 'Sprite' })
  251. const removeTool = new RemoveTool(application, { keyShortcut: 'Delete' })
  252. const cloneTool = new CloneTool(application)
  253. const clonerTool = new CloneTool(application, { name: 'cloner', label: 'tool.cloner.label', dynamic: true })
  254. const cutTool = new CutTool(application, { keyShortcut: 'Control+X' })
  255. const pasteTool = new PasteTool(application, { keyShortcut: 'Control+V' })
  256. const zoomAllTool = new ZoomAllTool(application, { keyShortcut: 'Shift+Z' })
  257. const fullscreenTool = new FullscreenTool(application)
  258. // const centerSelectionTool = new CenterSelectionTool(application)
  259. // const focusSelectionTool = new CenterSelectionTool(application, { name: 'focus_selection', label: 'tool.focus_selection.label', focusOnSelection: true, className: 'focus_selection' })
  260. const showTool = new VisibilityTool(application, { name: 'show', label: 'tool.show.label', className: 'show', visible: true })
  261. const hideTool = new VisibilityTool(application, { name: 'hide', label: 'tool.hide.label', className: 'hide', visible: false })
  262. const facesStyleTool = new StyleTool(application, { name: 'faces_style', label: 'tool.faces_style.label', edgesVisible: false, facesVisible: true })
  263. const edgesStyleTool = new StyleTool(application, { name: 'edges_style', label: 'tool.edges_style.label', edgesVisible: true, facesVisible: false })
  264. const facesEdgesStyleTool = new StyleTool(application, { name: 'faces_edges_style', label: 'tool.faces_edges_style.label', edgesVisible: true, facesVisible: true })
  265. const hiddenStyleTool = new StyleTool(application, { name: 'hidden_style', label: 'tool.hidden_style.label', edgesVisible: false, facesVisible: false })
  266. const paintTool = new PaintTool(application)
  267. const outlinerTool = new OutlinerTool(application)
  268. const inspectorTool = new InspectorTool(application)
  269. const statisticsTool = new StatisticsTool(application)
  270. // const startControllersTool = new StartControllersTool(application)
  271. // const stopControllersTool = new StopControllersTool(application)
  272. // const aboutTool = new AboutTool(application)
  273. // const githubTool = new OpenLinkTool(application, { name: 'gihub', label: 'GitHub', url: 'https://github.com/bimrocket/bimrocket', target: '_blank' })
  274. application.addTool(newSceneTool)
  275. //application.addTool(cloudExplorerTool)
  276. application.addTool(openLocalTool)
  277. application.addTool(saveLocalTool)
  278. application.addTool(optionsTool)
  279. //application.addTool(printTool)
  280. application.addTool(svgExporterTool)
  281. application.addTool(selectTool)
  282. application.addTool(selectParentTool)
  283. // application.addTool(selectReprTool)
  284. // application.addTool(selectByPropertyTool)
  285. //application.addTool(selectByQRCodeTool)
  286. //application.addTool(exportSelectionTool)
  287. application.addTool(topViewTool)
  288. application.addTool(frontViewTool)
  289. application.addTool(backViewTool)
  290. application.addTool(leftViewTool)
  291. application.addTool(rightViewTool)
  292. application.addTool(orbitTool)
  293. application.addTool(panoramaTool)
  294. application.addTool(flyTool)
  295. application.addTool(autoOrbitTool)
  296. //application.addTool(rebuildTool)
  297. // application.addTool(moveTool)
  298. // application.addTool(rotateTool)
  299. // application.addTool(scaleTool)
  300. // application.addTool(placeTool)
  301. // application.addTool(extrudeTool)
  302. // application.addTool(revolveTool)
  303. // application.addTool(unionTool)
  304. // application.addTool(intersectionTool)
  305. // application.addTool(subtractionTool)
  306. application.addTool(meshToSolidTool)
  307. application.addTool(mergeGeometriesTool)
  308. application.addTool(solidToMeshTool)
  309. application.addTool(sectionTool)
  310. application.addTool(measureLengthTool)
  311. application.addTool(measureSelectionTool)
  312. application.addTool(activateCameraTool)
  313. application.addTool(perspectiveTool)
  314. application.addTool(orthographicTool)
  315. application.addTool(inspectGeometryTool)
  316. application.addTool(resetMatrixTool)
  317. application.addTool(smoothEdgesTool)
  318. application.addTool(addGroupTool)
  319. application.addTool(addBoxTool)
  320. application.addTool(addCylinderTool)
  321. application.addTool(addSphereTool)
  322. application.addTool(addSpringTool)
  323. application.addTool(addRectangleTool)
  324. application.addTool(addCircleTool)
  325. application.addTool(addEllipseTool)
  326. application.addTool(addTrapeziumTool)
  327. application.addTool(addIProfileTool)
  328. application.addTool(addLProfileTool)
  329. application.addTool(addTProfileTool)
  330. application.addTool(addUProfileTool)
  331. application.addTool(addZProfileTool)
  332. application.addTool(addHelicoidTool)
  333. application.addTool(addSpriteTool)
  334. //application.addTool(scriptTool)
  335. application.addTool(removeTool)
  336. application.addTool(cloneTool)
  337. application.addTool(clonerTool)
  338. application.addTool(cutTool)
  339. application.addTool(pasteTool)
  340. application.addTool(zoomAllTool)
  341. application.addTool(fullscreenTool)
  342. // application.addTool(centerSelectionTool)
  343. // application.addTool(focusSelectionTool)
  344. application.addTool(showTool)
  345. application.addTool(hideTool)
  346. application.addTool(paintTool)
  347. application.addTool(edgesStyleTool)
  348. application.addTool(facesStyleTool)
  349. application.addTool(facesEdgesStyleTool)
  350. application.addTool(hiddenStyleTool)
  351. application.addTool(outlinerTool)
  352. application.addTool(inspectorTool)
  353. // application.addTool(statisticsTool)
  354. // application.addTool(startControllersTool)
  355. // application.addTool(stopControllersTool)
  356. // application.addTool(aboutTool)
  357. // application.addTool(githubTool)
  358. // create menus
  359. const menuBar = application.menuBar
  360. const fileMenu = menuBar.addMenu('menu.file')
  361. fileMenu.addMenuItem(newSceneTool)
  362. //fileMenu.addMenuItem(cloudExplorerTool)
  363. fileMenu.addMenuItem(openLocalTool)
  364. fileMenu.addMenuItem(saveLocalTool)
  365. //fileMenu.addMenuItem(printTool)
  366. fileMenu.addMenuItem(svgExporterTool)
  367. const editMenu = menuBar.addMenu('menu.edit')
  368. editMenu.addMenuItem(cutTool)
  369. editMenu.addMenuItem(pasteTool)
  370. editMenu.addMenuItem(removeTool)
  371. editMenu.addMenuItem(cloneTool)
  372. editMenu.addMenuItem(optionsTool)
  373. const viewMenu = menuBar.addMenu('menu.view')
  374. // viewMenu.addMenuItem(orbitTool)
  375. // viewMenu.addMenuItem(flyTool)
  376. // viewMenu.addMenuItem(zoomAllTool)
  377. const standardViewMenu = viewMenu.addMenu('menu.view.standard_view')
  378. standardViewMenu.addMenuItem(topViewTool)
  379. standardViewMenu.addMenuItem(frontViewTool)
  380. standardViewMenu.addMenuItem(backViewTool)
  381. standardViewMenu.addMenuItem(leftViewTool)
  382. standardViewMenu.addMenuItem(rightViewTool)
  383. viewMenu.addMenuItem(showTool)
  384. viewMenu.addMenuItem(hideTool)
  385. const styleMenu = viewMenu.addMenu('menu.view.style')
  386. styleMenu.addMenuItem(edgesStyleTool)
  387. styleMenu.addMenuItem(facesStyleTool)
  388. styleMenu.addMenuItem(facesEdgesStyleTool)
  389. styleMenu.addMenuItem(hiddenStyleTool)
  390. // viewMenu.addMenuItem(centerSelectionTool)
  391. // viewMenu.addMenuItem(focusSelectionTool)
  392. const projectionMenu = viewMenu.addMenu('menu.view.projection')
  393. projectionMenu.addMenuItem(perspectiveTool)
  394. projectionMenu.addMenuItem(orthographicTool)
  395. viewMenu.addMenuItem(activateCameraTool)
  396. viewMenu.addMenuItem(sectionTool)
  397. viewMenu.addMenuItem(fullscreenTool)
  398. const selectMenu = menuBar.addMenu('menu.select')
  399. selectMenu.addMenuItem(selectTool)
  400. selectMenu.addMenuItem(selectParentTool)
  401. // selectMenu.addMenuItem(selectReprTool)
  402. // selectMenu.addMenuItem(selectByPropertyTool)
  403. //selectMenu.addMenuItem(selectByQRCodeTool)
  404. //selectMenu.addMenuItem(exportSelectionTool)
  405. // const designMenu = menuBar.addMenu('menu.design')
  406. // const addMenu = designMenu.addMenu('menu.design.add')
  407. // const addSolidMenu = addMenu.addMenu('menu.design.add_solid')
  408. // addSolidMenu.addMenuItem(addBoxTool)
  409. // addSolidMenu.addMenuItem(addCylinderTool)
  410. // addSolidMenu.addMenuItem(addSphereTool)
  411. // addSolidMenu.addMenuItem(addSpringTool)
  412. // const addProfileMenu = addMenu.addMenu('menu.design.add_profile')
  413. // addProfileMenu.addMenuItem(addRectangleTool)
  414. // addProfileMenu.addMenuItem(addCircleTool)
  415. // addProfileMenu.addMenuItem(addEllipseTool)
  416. // addProfileMenu.addMenuItem(addTrapeziumTool)
  417. // addProfileMenu.addMenuItem(addIProfileTool)
  418. // addProfileMenu.addMenuItem(addLProfileTool)
  419. // addProfileMenu.addMenuItem(addTProfileTool)
  420. // addProfileMenu.addMenuItem(addUProfileTool)
  421. // addProfileMenu.addMenuItem(addZProfileTool)
  422. // const addCordMenu = addMenu.addMenu('menu.design.add_cord')
  423. // addCordMenu.addMenuItem(addHelicoidTool)
  424. // addMenu.addMenuItem(addGroupTool)
  425. // addMenu.addMenuItem(clonerTool)
  426. // addMenu.addMenuItem(addSpriteTool)
  427. // const transformMenu = designMenu.addMenu('menu.design.transform')
  428. // transformMenu.addMenuItem(moveTool)
  429. // transformMenu.addMenuItem(rotateTool)
  430. // transformMenu.addMenuItem(scaleTool)
  431. // transformMenu.addMenuItem(placeTool)
  432. // const booleanOperationMenu = designMenu.addMenu('menu.design.boolean_operation')
  433. // booleanOperationMenu.addMenuItem(unionTool)
  434. // booleanOperationMenu.addMenuItem(intersectionTool)
  435. // booleanOperationMenu.addMenuItem(subtractionTool)
  436. // designMenu.addMenuItem(extrudeTool)
  437. // designMenu.addMenuItem(revolveTool)
  438. // designMenu.addMenuItem(drawTool)
  439. // const geometryMenu = designMenu.addMenu('menu.design.geometry')
  440. // geometryMenu.addMenuItem(inspectGeometryTool)
  441. // geometryMenu.addMenuItem(meshToSolidTool)
  442. // geometryMenu.addMenuItem(solidToMeshTool)
  443. // geometryMenu.addMenuItem(mergeGeometriesTool)
  444. // geometryMenu.addMenuItem(resetMatrixTool)
  445. // geometryMenu.addMenuItem(smoothEdgesTool)
  446. // designMenu.addMenuItem(paintTool)
  447. //designMenu.addMenuItem(rebuildTool)
  448. //designMenu.addMenuItem(scriptTool)
  449. const measureMenu = menuBar.addMenu('menu.measure')
  450. measureMenu.addMenuItem(measureLengthTool)
  451. measureMenu.addMenuItem(measureSelectionTool)
  452. // const controlMenu = menuBar.addMenu('menu.control')
  453. // controlMenu.addMenuItem(startControllersTool)
  454. // controlMenu.addMenuItem(stopControllersTool)
  455. const panelsMenu = menuBar.addMenu('menu.panels')
  456. panelsMenu.addMenuItem(outlinerTool)
  457. panelsMenu.addMenuItem(inspectorTool)
  458. panelsMenu.addMenuItem(statisticsTool)
  459. // const helpMenu = menuBar.addMenu('menu.help')
  460. // helpMenu.addMenuItem(aboutTool)
  461. // helpMenu.addMenuItem(githubTool)
  462. // add tools to toolbar
  463. const toolBar = application.toolBar
  464. toolBar.addToolButton(newSceneTool)
  465. //toolBar.addToolButton(cloudExplorerTool)
  466. toolBar.addToolButton(openLocalTool)
  467. toolBar.addToolButton(saveLocalTool)
  468. toolBar.addToolButton(optionsTool)
  469. //toolBar.addToolButton(printTool)
  470. toolBar.addToolButton(selectTool)
  471. toolBar.addToolButton(orbitTool)
  472. //toolBar.addToolButton(flyTool)
  473. toolBar.addToolButton(zoomAllTool)
  474. toolBar.addToolButton(showTool)
  475. toolBar.addToolButton(hideTool)
  476. // toolBar.addToolButton(centerSelectionTool)
  477. // toolBar.addToolButton(focusSelectionTool)
  478. toolBar.addToolButton(sectionTool)
  479. //toolBar.addToolButton(scriptTool)
  480. toolBar.addToolButton(measureLengthTool)
  481. toolBar.addToolButton(drawTool)
  482. toolBar.addToolButton(paintTool)
  483. // toolBar.addToolButton(moveTool)
  484. // toolBar.addToolButton(rotateTool)
  485. // toolBar.addToolButton(scaleTool)
  486. // toolBar.addToolButton(placeTool)
  487. //toolBar.addToolButton(rebuildTool)
  488. //toolBar.addToolButton(selectByQRCodeTool)
  489. // restore services
  490. application.restoreServices('model')
  491. application.restoreServices('script')
  492. // create default services
  493. if (application.services.model === undefined) {
  494. const cloudfs = new WebdavService('models', 'Repository', '/bimrocket-server/api/cloudfs/models')
  495. application.addService(cloudfs, 'model', false)
  496. }
  497. if (application.services.script === undefined) {
  498. const cloudfs = new WebdavService('scripts', 'Scripts', '/bimrocket-server/api/cloudfs/scripts')
  499. application.addService(cloudfs, 'script', false)
  500. }
  501. // register bundles and locales
  502. BundleManager.setBundle('base', 'i18n/base')
  503. application.i18n.defaultBundle = BundleManager.getBundle('base')
  504. application.i18n.addSupportedLanguages('en', 'es', 'ca')
  505. application.i18n.updateTree(application.element)
  506. // select baseObject
  507. application.selection.set(application.baseObject)
  508. // globals
  509. window.THREE = THREE
  510. }