Răsfoiți Sursa

Fixed distance not being returned properly in ray/box intersection code, made editor icons lower resolution and smaller

Ivan Safrin 11 ani în urmă
părinte
comite
d9d7ff88d6

+ 3 - 1
Core/Contents/Source/PolyRay.cpp

@@ -133,7 +133,9 @@ Number Ray::boxIntersect(const Vector3 &box, const Matrix4 &transformMatrix, flo
 		tmax = tzmax;
 		
 	if( (tmin < far) && (tmax > near) ) {
-        return fabs(tmin);
+        Vector3 hitpoint = r.origin + (r.direction * fabs(tmin));
+        hitpoint = transformMatrix * hitpoint;
+        return origin.distance(hitpoint);
     } else {
         return -1.0;
     }

+ 1 - 0
Core/Contents/Source/PolySceneEntityInstance.cpp

@@ -437,6 +437,7 @@ Entity *SceneEntityInstance::loadObjectEntryIntoEntity(ObjectEntry *entry, Entit
                 if(fileName) {
                     SceneMesh *newMesh = new SceneMesh(fileName->stringVal);
                     applySceneMesh(meshEntry, newMesh);
+                    newMesh->cacheToVertexBuffer(true);
                     entity = newMesh;
                 }
             }

BIN
IDE/Contents/Resources/Images/entityEditor/camera_icon.png


BIN
IDE/Contents/Resources/Images/entityEditor/curve_icon.png


BIN
IDE/Contents/Resources/Images/entityEditor/emitter_icon.png


BIN
IDE/Contents/Resources/Images/entityEditor/empty_icon.png


BIN
IDE/Contents/Resources/Images/entityEditor/light_icon.png


BIN
IDE/Contents/Resources/Images/entityEditor/sound_icon.png


BIN
IDE/Contents/Resources/ImagesRetina/entityEditor/camera_icon.png


BIN
IDE/Contents/Resources/ImagesRetina/entityEditor/curve_icon.png


BIN
IDE/Contents/Resources/ImagesRetina/entityEditor/emitter_icon.png


BIN
IDE/Contents/Resources/ImagesRetina/entityEditor/empty_icon.png


BIN
IDE/Contents/Resources/ImagesRetina/entityEditor/light_icon.png


BIN
IDE/Contents/Resources/ImagesRetina/entityEditor/sound_icon.png


+ 3 - 2
IDE/Contents/Source/PolycodeEntityEditor.cpp

@@ -934,12 +934,13 @@ void EntityEditorMainView::Update() {
     }
     
     if(entitiesToSelect.size() != 0) {
+        
         sort (entitiesToSelect.begin(), entitiesToSelect.end(), distanceSorter);
         
         if(multiselectIndex > entitiesToSelect.size()-1 || selectingNewEntities()) {
             multiselectIndex = 0;
         }
-
+        
         // force dummy to always select
         for(int i=0; i < entitiesToSelect.size(); i++) {
             if(entitiesToSelect[i].entity == dummyEntity) {
@@ -993,7 +994,7 @@ void EntityEditorMainView::createIcon(Entity *entity, String iconFile) {
     
     entity->removeAllHandlersForListener(this);
     
-    ScenePrimitive *iconPrimitive = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 0.4, 0.4);
+    ScenePrimitive *iconPrimitive = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 0.3, 0.3);
     
     iconPrimitive->setMaterialByName("Unlit");
 	Texture *tex = CoreServices::getInstance()->getMaterialManager()->createTextureFromFile("entityEditor/"+iconFile);