@@ -325,8 +325,8 @@ EntityEditorMainView::EntityEditorMainView(PolycodeEditor *editor) {
325325 this ->editor = editor;
326326 mainScene = new Scene (Scene::SCENE_3D, true );
327327
328- // mainScene->getDefaultCamera()->frustumCulling = false;
329- // mainScene->doVisibilityChecking(false);
328+ mainScene->getDefaultCamera ()->frustumCulling = false ;
329+ mainScene->doVisibilityChecking (false );
330330
331331 renderTexture = new SceneRenderTexture (mainScene, mainScene->getDefaultCamera (), 512 , 512 );
332332 mainScene->clearColor .setColor (0.2 , 0.2 , 0.2 , 1.0 );
@@ -383,7 +383,7 @@ EntityEditorMainView::EntityEditorMainView(PolycodeEditor *editor) {
383383
384384 mainScene->getDefaultCamera ()->setPosition (10 , 10 , 10 );
385385 mainScene->getDefaultCamera ( )->lookAt (Vector3 ());
386- mainScene->getDefaultCamera ()->setClippingPlanes (0.01 , 10000 );
386+ mainScene->getDefaultCamera ()->setClippingPlanes (0.01 , 1000 );
387387
388388 grid = new EditorGrid ();
389389 grid->addEventListener (this , Event::CHANGE_EVENT);
@@ -482,6 +482,12 @@ EntityEditorMainView::EntityEditorMainView(PolycodeEditor *editor) {
482482 iconVisibilitySelector->setPosition (230 , 2 );
483483 iconVisibilitySelector->addEventListener (this , UIEvent::SELECT_EVENT);
484484
485+ bBoxVis = new ScenePrimitive (ScenePrimitive::TYPE_BOX, 1.0 , 1.0 , 1.0 );
486+ bBoxVis->overlayWireframe = true ;
487+ bBoxVis->wireFrameColor = Color (0.3 , 0.5 , 1.0 , 0.5 );
488+ bBoxVis->color .a = 0.0 ;
489+ bBoxVis->setBlendingMode (Renderer::BLEND_MODE_NORMAL);
490+ mainScene->addChild (bBoxVis);
485491
486492 editorMode = EDITOR_MODE_3D;
487493
@@ -506,6 +512,7 @@ void EntityEditorMainView::doAction(String actionName, PolycodeEditorActionData
506512 }
507513 }
508514 transformGizmo->setTransformSelection (selectedEntities);
515+ setBBox ();
509516 } else if (actionName == " scale" ) {
510517 for (int i=0 ; i < selectedEntities.size (); i++) {
511518 if (i < sceneData->entries .size ()) {
@@ -650,6 +657,8 @@ void EntityEditorMainView::Update() {
650657 icons[i]->rebuildTransformMatrix ();
651658 icons[i]->recalculateAABBAllChildren ();
652659 }
660+
661+ setBBox ();
653662}
654663
655664void EntityEditorMainView::createIcon (Entity *entity, String iconFile) {
@@ -959,6 +968,7 @@ void EntityEditorMainView::deleteSelected(bool doAction) {
959968
960969 selectedEntities.clear ();
961970 transformGizmo->setTransformSelection (selectedEntities);
971+ setBBox ();
962972 dispatchEvent (new Event (), Event::CHANGE_EVENT);
963973}
964974
@@ -1274,6 +1284,7 @@ void EntityEditorMainView::selectAll(bool doAction) {
12741284 }
12751285 }
12761286 transformGizmo->setTransformSelection (selectedEntities);
1287+ setBBox ();
12771288 dispatchEvent (new Event (), Event::CHANGE_EVENT);
12781289}
12791290
@@ -1295,6 +1306,7 @@ void EntityEditorMainView::selectNone(bool doAction) {
12951306 }
12961307 selectedEntities.clear ();
12971308 transformGizmo->setTransformSelection (selectedEntities);
1309+ setBBox ();
12981310 dispatchEvent (new Event (), Event::CHANGE_EVENT);
12991311}
13001312
@@ -1406,11 +1418,30 @@ void EntityEditorMainView::selectEntity(Entity *targetEntity, bool addToSelectio
14061418 beforeData = NULL ;
14071419 }
14081420
1421+
1422+
14091423 transformGizmo->setTransformSelection (selectedEntities);
1424+ setBBox ();
14101425 dispatchEvent (new Event (), Event::CHANGE_EVENT);
14111426
14121427}
14131428
1429+ void EntityEditorMainView::setBBox () {
1430+ if (selectedEntities.size () > 0 ) {
1431+ bBoxVis->visible = true ;
1432+
1433+ Entity *targetEntity = selectedEntities[0 ];
1434+ bBoxVis->setPrimitiveOptions (ScenePrimitive::TYPE_BOX, targetEntity->getLocalBoundingBox ().x , targetEntity->getLocalBoundingBox ().y , targetEntity->getLocalBoundingBox ().z );
1435+
1436+ Matrix4 mat = targetEntity->getConcatenatedMatrix ();
1437+ bBoxVis->setTransformByMatrixPure (mat);
1438+ bBoxVis->dirtyMatrix (false );
1439+
1440+ } else {
1441+ bBoxVis->visible = false ;
1442+ }
1443+ }
1444+
14141445Entity *EntityEditorMainView::getObjectRoot () {
14151446 return sceneObjectRoot;
14161447}
0 commit comments