Просмотр исходного кода

Cameras now have an ortho sizing mode (manual, lock height, lock width and viewport), added camera preview window to IDE entity editor, camera visualizer in entity editor now correctly shows ortho mode dimensions, added camera ortho size controls to camera prop sheet, made camera prop sheet hide unnecessary parameters, editor prop sheets will now automatically set their vertical size

Ivan Safrin 12 лет назад
Родитель
Сommit
8127c29e29

+ 16 - 7
Core/Contents/Include/PolyCamera.h

@@ -71,7 +71,7 @@ namespace Polycode {
 			* @param orthoSizeX Width of the orthographic frustum (defaults to 1.0)
 			* @param orthoSizeX Width of the orthographic frustum (defaults to 1.0)
 			* @param orthoSizeY Height of the orthographic frustum (defaults to 1.0)				
 			* @param orthoSizeY Height of the orthographic frustum (defaults to 1.0)				
 			*/			
 			*/			
-			void setOrthoMode(bool mode, Number orthoSizeX = 1.0, Number orthoSizeY = 1.0);
+			void setOrthoMode(bool mode);
 
 
 			void setOrthoSize(Number orthoSizeX, Number orthoSizeY);
 			void setOrthoSize(Number orthoSizeX, Number orthoSizeY);
 			
 			
@@ -169,16 +169,25 @@ namespace Polycode {
 			bool frustumCulling;
 			bool frustumCulling;
 			
 			
 			bool topLeftOrtho;
 			bool topLeftOrtho;
-			
+		
+            /**
+            * Shifts camera frustum by factor of the frustum size. (x=-1 will shift the frustum to the left by a whole screen width).
+            */
 			Vector2 cameraShift;
 			Vector2 cameraShift;
+		      
+            void setOrthoSizeMode(int orthoSizeMode);
+            int getOrthoSizeMode() const;
+        
+            static const int ORTHO_SIZE_MANUAL = 0;
+			static const int ORTHO_SIZE_LOCK_HEIGHT = 1;
+			static const int ORTHO_SIZE_LOCK_WIDTH = 2;
+			static const int ORTHO_SIZE_VIEWPORT = 3;
 		
 		
-			/**
-			/* Shifts camera frustum by factor of the frustum size. (x=-1 will shift the frustum to the left by a whole screen width).
-			*/
-					
 		protected:
 		protected:
+        
+            int orthoSizeMode;
 		
 		
-			Matrix4 projectionMatrix;	
+			Matrix4 projectionMatrix;
 			Polycode::Rectangle viewport;
 			Polycode::Rectangle viewport;
 			Number orthoSizeX;
 			Number orthoSizeX;
 			Number orthoSizeY;
 			Number orthoSizeY;

+ 30 - 7
Core/Contents/Source/PolyCamera.cpp

@@ -47,6 +47,9 @@ Camera::Camera(Scene *parentScene) : Entity() {
 	nearClipPlane = 1.0;
 	nearClipPlane = 1.0;
 	farClipPlane = 1000.0;
 	farClipPlane = 1000.0;
 	topLeftOrtho = false;
 	topLeftOrtho = false;
+    orthoSizeX = 1.0;
+    orthoSizeY = 1.0;
+    orthoSizeMode = Camera::ORTHO_SIZE_LOCK_HEIGHT;
 }
 }
 
 
 Camera::~Camera() {	
 Camera::~Camera() {	
@@ -102,9 +105,7 @@ void Camera::setOrthoSize(Number orthoSizeX, Number orthoSizeY) {
 	this->orthoSizeY = orthoSizeY;
 	this->orthoSizeY = orthoSizeY;
 }
 }
 
 
-void Camera::setOrthoMode(bool mode, Number orthoSizeX, Number orthoSizeY) {
-	this->orthoSizeX = orthoSizeX;
-	this->orthoSizeY = orthoSizeY;
+void Camera::setOrthoMode(bool mode) {
 	orthoMode = mode;
 	orthoMode = mode;
 }			
 }			
 
 
@@ -406,19 +407,41 @@ Number Camera::getFarClipppingPlane() {
     return farClipPlane;
     return farClipPlane;
 }
 }
 
 
+void Camera::setOrthoSizeMode(int orthoSizeMode) {
+    this->orthoSizeMode = orthoSizeMode;
+}
+
+int Camera::getOrthoSizeMode() const {
+    return orthoSizeMode;
+}
+
 void Camera::doCameraTransform() {
 void Camera::doCameraTransform() {
 	renderer->setClippingPlanes(nearClipPlane, farClipPlane);
 	renderer->setClippingPlanes(nearClipPlane, farClipPlane);
-
+	
+    viewport = renderer->getViewport();
+    
 	if(!orthoMode) {
 	if(!orthoMode) {
 		renderer->setViewportShift(cameraShift.x, cameraShift.y);
 		renderer->setViewportShift(cameraShift.x, cameraShift.y);
 		renderer->setFOV(fov);
 		renderer->setFOV(fov);
 		renderer->setPerspectiveMode();		
 		renderer->setPerspectiveMode();		
 	} else {
 	} else {
-		renderer->setOrthoMode(orthoSizeX, orthoSizeY, !topLeftOrtho);
-	}	
+        switch(orthoSizeMode) {
+            case ORTHO_SIZE_MANUAL:
+                renderer->setOrthoMode(orthoSizeX, orthoSizeY, !topLeftOrtho);
+            break;
+            case ORTHO_SIZE_LOCK_HEIGHT:
+                renderer->setOrthoMode(orthoSizeY * (viewport.w/viewport.h), orthoSizeY, !topLeftOrtho);
+            break;
+            case ORTHO_SIZE_LOCK_WIDTH:
+                renderer->setOrthoMode(orthoSizeX, orthoSizeX * (viewport.h/viewport.w), !topLeftOrtho);
+            break;
+            case ORTHO_SIZE_VIEWPORT:
+                renderer->setOrthoMode(viewport.w / renderer->getBackingResolutionScaleX(), viewport.h / renderer->getBackingResolutionScaleY(), !topLeftOrtho);
+            break;
+        }
+	}
 	renderer->setExposureLevel(exposureLevel);
 	renderer->setExposureLevel(exposureLevel);
 
 
-	viewport = renderer->getViewport();
 	projectionMatrix = renderer->getProjectionMatrix();
 	projectionMatrix = renderer->getProjectionMatrix();
 
 
 	if(matrixDirty) {
 	if(matrixDirty) {

+ 0 - 7
Core/Contents/Source/PolyGLRenderer.cpp

@@ -529,13 +529,6 @@ void OpenGLRenderer::setFogProperties(int fogMode, Color color, Number density,
 }
 }
 
 
 void OpenGLRenderer::setOrthoMode(Number xSize, Number ySize, bool centered) {
 void OpenGLRenderer::setOrthoMode(Number xSize, Number ySize, bool centered) {
-	
-	if(xSize == 0)
-		xSize = xRes;
-
-	if(ySize == 0)
-		ySize = yRes;
-		
 	this->orthoSizeX = xSize;
 	this->orthoSizeX = xSize;
 	this->orthoSizeY = ySize;
 	this->orthoSizeY = ySize;
 
 

+ 4 - 2
Core/Contents/Source/PolyScene.cpp

@@ -83,11 +83,13 @@ void Scene::setSceneType(int newType) {
 	switch(sceneType) {
 	switch(sceneType) {
 		case SCENE_2D:
 		case SCENE_2D:
 			defaultCamera->setClippingPlanes(-100.0, 100.0);
 			defaultCamera->setClippingPlanes(-100.0, 100.0);
-			defaultCamera->setOrthoMode(true, CoreServices::getInstance()->getCore()->getXRes(),CoreServices::getInstance()->getCore()->getYRes());
+			defaultCamera->setOrthoMode(true);
+            defaultCamera->setOrthoSize(CoreServices::getInstance()->getCore()->getXRes(),CoreServices::getInstance()->getCore()->getYRes());
             break;
             break;
 		case SCENE_2D_TOPLEFT:
 		case SCENE_2D_TOPLEFT:
 			defaultCamera->setClippingPlanes(-100.0, 100.0);
 			defaultCamera->setClippingPlanes(-100.0, 100.0);
-			defaultCamera->setOrthoMode(true, 0,0);
+			defaultCamera->setOrthoMode(true);
+            defaultCamera->setOrthoSizeMode(Camera::ORTHO_SIZE_VIEWPORT);
 			defaultCamera->topLeftOrtho = true;
 			defaultCamera->topLeftOrtho = true;
 			rootEntity.setInverseY(true);
 			rootEntity.setInverseY(true);
             break;
             break;

+ 22 - 0
IDE/Contents/Include/PolycodeEntityEditor.h

@@ -45,6 +45,24 @@ class CameraDisplay : public Entity {
         SceneMesh *fovSceneMesh;
         SceneMesh *fovSceneMesh;
         Mesh *fovMesh;
         Mesh *fovMesh;
         Camera *camera;
         Camera *camera;
+    
+};
+
+class CameraPreviewWindow : public UIElement {
+    public:
+        CameraPreviewWindow();
+        ~CameraPreviewWindow();
+
+        void setCamera(Scene *scene, Camera *camera);
+    
+    private:
+    
+        SceneRenderTexture *renderTexture;
+        Camera *camera;
+        Scene *scene;
+        UIRect *bgRect;
+        UIRect *previewRect;
+    
 };
 };
 
 
 class EntityEditorMainView : public UIElement {
 class EntityEditorMainView : public UIElement {
@@ -71,6 +89,8 @@ class EntityEditorMainView : public UIElement {
             static const int EDITOR_MODE_2D = 1;
             static const int EDITOR_MODE_2D = 1;
     
     
 		protected:
 		protected:
+    
+    
 			
 			
             int editorMode;
             int editorMode;
 			Entity *topBar;
 			Entity *topBar;
@@ -93,6 +113,8 @@ class EntityEditorMainView : public UIElement {
             UIComboBox *modeSwitchDropdown;
             UIComboBox *modeSwitchDropdown;
             UIMenu *addEntityMenu;
             UIMenu *addEntityMenu;
     
     
+            CameraPreviewWindow *cameraPreview;
+    
             std::vector<ScenePrimitive*> icons;
             std::vector<ScenePrimitive*> icons;
     
     
             Vector3 cursorPosition;
             Vector3 cursorPosition;

+ 5 - 1
IDE/Contents/Include/PolycodeProps.h

@@ -388,8 +388,9 @@ class PropSheet : public UIElement {
 		void Resize(Number width, Number height);
 		void Resize(Number width, Number height);
 		
 		
 		virtual void applyPropActionData(PolycodeEditorPropActionData *data);
 		virtual void applyPropActionData(PolycodeEditorPropActionData *data);
-		
 		void handleEvent(Event *event);
 		void handleEvent(Event *event);
+    
+        void layoutProps();
 		
 		
 		void setCollapsed(bool val);
 		void setCollapsed(bool val);
 		
 		
@@ -731,10 +732,13 @@ class CameraSheet : public PropSheet {
         void handleEvent(Event *event);
         void handleEvent(Event *event);
         void setCamera(Camera *camera);
         void setCamera(Camera *camera);
     
     
+        void updateOptionVisibility();
+    
         NumberProp *exposureProp;
         NumberProp *exposureProp;
     
     
         BoolProp *orthoProp;
         BoolProp *orthoProp;
         NumberProp *fovProp;
         NumberProp *fovProp;
+        ComboProp *orthoSizeTypeProp;
         NumberProp *orthoWidthProp;
         NumberProp *orthoWidthProp;
         NumberProp *orthoHeightProp;
         NumberProp *orthoHeightProp;
     
     

+ 90 - 16
IDE/Contents/Source/PolycodeEntityEditor.cpp

@@ -38,10 +38,10 @@ CameraDisplay::CameraDisplay(Camera *camera) : Entity() {
     
     
     fovMesh->addVertex(0.0, 0.0, 0.0);
     fovMesh->addVertex(0.0, 0.0, 0.0);
     
     
-    fovMesh->addVertex(-1.0, 1.0, 1.0);
-    fovMesh->addVertex(1.0, 1.0, 1.0);
-    fovMesh->addVertex(1.0, -1.0, 1.0);
-    fovMesh->addVertex(-1.0, -1.0, 1.0);
+    fovMesh->addVertex(-1.0, 1.0, -1.0);
+    fovMesh->addVertex(1.0, 1.0, -1.0);
+    fovMesh->addVertex(1.0, -1.0, -1.0);
+    fovMesh->addVertex(-1.0, -1.0, -1.0);
 
 
 //    fovMesh->addVertex(0.0, 0.0, 0.0);
 //    fovMesh->addVertex(0.0, 0.0, 0.0);
 //    fovMesh->addVertex(0.0, 0.0, 2.0);
 //    fovMesh->addVertex(0.0, 0.0, 2.0);
@@ -69,25 +69,91 @@ CameraDisplay::~CameraDisplay() {
 }
 }
 
 
 void CameraDisplay::Update() {
 void CameraDisplay::Update() {
-    Number fovRad = (90+camera->getFOV()/2.0) * TORADIANS;
     
     
-    Number displayScale = 2.0;
-    
-    Number xPos = cos(fovRad) * displayScale;
-    Number yPos = xPos * 0.5625;
-    Number zPos = sin(fovRad) * displayScale;
+    if(camera->getOrthoMode()) {
+
+        Number xPos = camera->getOrthoSizeX() * 0.5;
+        Number yPos = camera->getOrthoSizeY() * 0.5;
+        Number zPos = 0.0;
+
+ 
+        switch(camera->getOrthoSizeMode()) {
+            case Camera::ORTHO_SIZE_LOCK_HEIGHT:
+                xPos = yPos * (camera->getViewport().w/camera->getViewport().h);
+            break;
+            case Camera::ORTHO_SIZE_LOCK_WIDTH:
+                yPos = xPos * (camera->getViewport().h/camera->getViewport().w);
+            break;
+            case Camera::ORTHO_SIZE_VIEWPORT:
+                xPos = camera->getViewport().w * 0.5;
+                yPos = camera->getViewport().h * 0.5;
+            break;
+        }
+        
+        fovMesh->getActualVertex(1)->set(-xPos, yPos, zPos);
+        fovMesh->getActualVertex(2)->set(xPos, yPos, zPos);
+        fovMesh->getActualVertex(3)->set(xPos, -yPos, zPos);
+        fovMesh->getActualVertex(4)->set(-xPos, -yPos, zPos);
+        fovMesh->dirtyArray(RenderDataArray::VERTEX_DATA_ARRAY);
+    } else {
+        Number fovRad = (90+camera->getFOV()/2.0) * TORADIANS;
+        Number displayScale = 3.0;
+        Number xPos = cos(fovRad) * displayScale;
+        Number yPos = xPos * 0.5625;
+        Number zPos = -sin(fovRad) * displayScale * 0.5;
+        
+        fovMesh->getActualVertex(1)->set(-xPos, yPos, zPos);
+        fovMesh->getActualVertex(2)->set(xPos, yPos, zPos);
+        fovMesh->getActualVertex(3)->set(xPos, -yPos, zPos);
+        fovMesh->getActualVertex(4)->set(-xPos, -yPos, zPos);
+        fovMesh->dirtyArray(RenderDataArray::VERTEX_DATA_ARRAY);
+    }
     
     
-    fovMesh->getActualVertex(1)->set(-xPos, yPos, zPos);
-    fovMesh->getActualVertex(2)->set(xPos, yPos, zPos);
-    fovMesh->getActualVertex(3)->set(xPos, -yPos, zPos);
-    fovMesh->getActualVertex(4)->set(-xPos, -yPos, zPos);
-    fovMesh->dirtyArray(RenderDataArray::VERTEX_DATA_ARRAY);
 /*
 /*
     fovMesh->getActualVertex(5)->set(0.0, 0.0, camera->getNearClipppingPlane());
     fovMesh->getActualVertex(5)->set(0.0, 0.0, camera->getNearClipppingPlane());
     fovMesh->getActualVertex(6)->set(0.0, 0.0, camera->getFarClipppingPlane());
     fovMesh->getActualVertex(6)->set(0.0, 0.0, camera->getFarClipppingPlane());
  */
  */
 }
 }
 
 
+CameraPreviewWindow::CameraPreviewWindow() : UIElement() {
+    
+    bgRect = new UIRect((160 * 1.5)+16, (90 * 1.5) + 28);
+    addChild(bgRect);
+    bgRect->setColor(0.0, 0.0, 0.0, 0.5);
+    
+    UILabel *label = new UILabel("CAMERA PREVIEW", 11);
+    label->setColor(1.0, 1.0, 1.0, 1.0);
+    addChild(label);
+    label->setPosition(15, 3);
+    
+    previewRect = new UIRect(160 * 1.5, 90 * 1.5);
+    previewRect->setPosition(8, 20);
+    addChild(previewRect);
+    enabled = false;
+    camera = NULL;
+    scene = NULL;
+    renderTexture = NULL;
+}
+
+CameraPreviewWindow::~CameraPreviewWindow() {
+    
+}
+
+void CameraPreviewWindow::setCamera(Scene *scene, Camera *camera) {
+    this->camera = camera;
+    this->scene = scene;
+    if(camera) {
+        enabled = true;
+        if(renderTexture) {
+            delete renderTexture;
+        }
+        renderTexture = new SceneRenderTexture(scene, camera, previewRect->getWidth(), previewRect->getHeight());
+        previewRect->setTexture(renderTexture->getTargetTexture());
+        
+    } else {
+        enabled = false;
+    }
+}
 
 
 EntityEditorMainView::EntityEditorMainView() {
 EntityEditorMainView::EntityEditorMainView() {
 	processInputEvents = true;
 	processInputEvents = true;
@@ -103,7 +169,12 @@ EntityEditorMainView::EntityEditorMainView() {
 	renderTextureShape->setTexture(renderTexture->getTargetTexture());
 	renderTextureShape->setTexture(renderTexture->getTargetTexture());
 	addChild(renderTextureShape);
 	addChild(renderTextureShape);
 	renderTextureShape->setPosition(0, 30);
 	renderTextureShape->setPosition(0, 30);
-			
+
+    cameraPreview = new CameraPreviewWindow();
+    addChild(cameraPreview);
+    cameraPreview->setPosition(5, 35);
+    
+    
 	headerBg = new UIRect(10,10);
 	headerBg = new UIRect(10,10);
 	addChild(headerBg);
 	addChild(headerBg);
 	headerBg->setAnchorPoint(-1.0, -1.0, 0.0);
 	headerBg->setAnchorPoint(-1.0, -1.0, 0.0);
@@ -476,6 +547,9 @@ void EntityEditorMainView::doEntitySelect(Entity *targetEntity) {
     if(sceneMesh && ! emitter) {
     if(sceneMesh && ! emitter) {
         sceneMesh->overlayWireframe = true;
         sceneMesh->overlayWireframe = true;
     }
     }
+    
+    Camera *camera = dynamic_cast<Camera*>(targetEntity);
+    cameraPreview->setCamera(mainScene, camera);
 }
 }
 
 
 
 

+ 73 - 15
IDE/Contents/Source/PolycodeProps.cpp

@@ -291,16 +291,26 @@ void PropSheet::setTopPadding(Number padding) {
 void PropSheet::Resize(Number width, Number height) {
 void PropSheet::Resize(Number width, Number height) {
 	setWidth(width);
 	setWidth(width);
 	setHeight(height);
 	setHeight(height);
-	
 	bg->Resize(width, 30);
 	bg->Resize(width, 30);
-	
+
+	layoutProps();
+}
+
+void PropSheet::layoutProps() {
 	Number yOffset = propTopPadding;
 	Number yOffset = propTopPadding;
-	
 	for(int i=0; i < props.size(); i++) {
 	for(int i=0; i < props.size(); i++) {
-		props[i]->setPosition(0, yOffset);
-		props[i]->setPropWidth(width);
-		yOffset += props[i]->getHeight();
+        if(props[i]->enabled) {
+            props[i]->setPosition(0, yOffset);
+            props[i]->setPropWidth(getWidth());
+            yOffset += props[i]->getHeight();
+        }
 	}
 	}
+    Number newPropHeight = yOffset + contents->getPosition().y;
+    if(newPropHeight != propHeight) {
+        propHeight = newPropHeight;
+        dispatchEvent(new Event(), Event::COMPLETE_EVENT);	
+    }
+
 }
 }
 
 
 void PropSheet::addProp(PropProp *prop) {
 void PropSheet::addProp(PropProp *prop) {
@@ -2842,30 +2852,72 @@ CameraSheet::CameraSheet() : PropSheet("CAMERA", "camera") {
     enabled = false;
     enabled = false;
     camera = NULL;
     camera = NULL;
     
     
-    
     exposureProp = new NumberProp("Exposure");
     exposureProp = new NumberProp("Exposure");
     addProp(exposureProp);
     addProp(exposureProp);
 
 
+    nearClipPlane = new NumberProp("Near clip");
+    addProp(nearClipPlane);
+    
+    farClipPlane = new NumberProp("Far clip");
+    addProp(farClipPlane);
+    
     orthoProp = new BoolProp("Orthographic");
     orthoProp = new BoolProp("Orthographic");
     addProp(orthoProp);
     addProp(orthoProp);
 
 
     fovProp = new NumberProp("FOV");
     fovProp = new NumberProp("FOV");
     addProp(fovProp);
     addProp(fovProp);
 
 
+    orthoSizeTypeProp = new ComboProp("Size mode");
+    orthoSizeTypeProp->comboEntry->addComboItem("Manual");
+    orthoSizeTypeProp->comboEntry->addComboItem("Lock height");
+    orthoSizeTypeProp->comboEntry->addComboItem("Lock width");
+    orthoSizeTypeProp->comboEntry->addComboItem("Viewport");
+    
+    addProp(orthoSizeTypeProp);
+    
     orthoWidthProp = new NumberProp("Ortho width");
     orthoWidthProp = new NumberProp("Ortho width");
     addProp(orthoWidthProp);
     addProp(orthoWidthProp);
 
 
     orthoHeightProp = new NumberProp("Ortho height");
     orthoHeightProp = new NumberProp("Ortho height");
     addProp(orthoHeightProp);
     addProp(orthoHeightProp);
+    
+    propHeight = 260;
+}
 
 
-    nearClipPlane = new NumberProp("Near clip");
-    addProp(nearClipPlane);
-
-    farClipPlane = new NumberProp("Far clip");
-    addProp(farClipPlane);
-
+void CameraSheet::updateOptionVisibility() {
+    if(!camera) {
+        return;
+    }
     
     
-    propHeight = 220;
+    if(camera->getOrthoMode()) {
+        fovProp->enabled = false;
+        orthoSizeTypeProp->enabled = true;
+        
+        switch(camera->getOrthoSizeMode()) {
+            case Camera::ORTHO_SIZE_MANUAL:
+                orthoWidthProp->enabled = true;
+                orthoHeightProp->enabled = true;
+            break;
+            case Camera::ORTHO_SIZE_LOCK_HEIGHT:
+                orthoWidthProp->enabled = false;
+                orthoHeightProp->enabled = true;
+            break;
+            case Camera::ORTHO_SIZE_LOCK_WIDTH:
+                orthoWidthProp->enabled = true;
+                orthoHeightProp->enabled = false;
+            break;
+            case Camera::ORTHO_SIZE_VIEWPORT:
+                orthoWidthProp->enabled = false;
+                orthoHeightProp->enabled = false;
+            break;
+        }
+    } else {
+        fovProp->enabled = true;
+        orthoSizeTypeProp->enabled = false;
+        orthoWidthProp->enabled = false;
+        orthoHeightProp->enabled = false;
+    }
+    layoutProps();
 }
 }
 
 
 CameraSheet::~CameraSheet() {
 CameraSheet::~CameraSheet() {
@@ -2898,9 +2950,12 @@ void CameraSheet::handleEvent(Event *event) {
     } else if(event->getDispatcher() == farClipPlane) {
     } else if(event->getDispatcher() == farClipPlane) {
         camera->setClippingPlanes(camera->getNearClipppingPlane(),farClipPlane->get());
         camera->setClippingPlanes(camera->getNearClipppingPlane(),farClipPlane->get());
         dispatchEvent(new Event(), Event::CHANGE_EVENT);
         dispatchEvent(new Event(), Event::CHANGE_EVENT);
+    } else if(event->getDispatcher() == orthoSizeTypeProp) {
+        camera->setOrthoSizeMode(orthoSizeTypeProp->get());
+        dispatchEvent(new Event(), Event::CHANGE_EVENT);
     }
     }
 
 
-
+    updateOptionVisibility();
     
     
     PropSheet::handleEvent(event);
     PropSheet::handleEvent(event);
 }
 }
@@ -2917,7 +2972,10 @@ void CameraSheet::setCamera(Camera *camera) {
         nearClipPlane->set(camera->getNearClipppingPlane());
         nearClipPlane->set(camera->getNearClipppingPlane());
         farClipPlane->set(camera->getFarClipppingPlane());
         farClipPlane->set(camera->getFarClipppingPlane());
         
         
+        orthoSizeTypeProp->set(camera->getOrthoSizeMode());
         fovProp->set(camera->getFOV());
         fovProp->set(camera->getFOV());
+        
+        updateOptionVisibility();
     } else {
     } else {
         enabled = false;
         enabled = false;
     }
     }