diff --git a/Engine/source/T3D/guiObjectView.cpp b/Engine/source/T3D/guiObjectView.cpp index 35d14c1c9..392eee503 100644 --- a/Engine/source/T3D/guiObjectView.cpp +++ b/Engine/source/T3D/guiObjectView.cpp @@ -182,7 +182,8 @@ void GuiObjectView::initPersistFields() "Minimum distance below which the camera will not zoom in further." ); addField( "cameraSpeed", TypeF32, Offset( mCameraSpeed, GuiObjectView ), "Multiplier for mouse camera operations." ); - + addField( "cameraRotation", TypePoint3F, Offset( mCameraRotation, GuiObjectView ), + "Set the camera rotation." ); endGroup( "Camera" ); Parent::initPersistFields(); @@ -205,6 +206,7 @@ void GuiObjectView::onStaticModified( StringTableEntry slotName, const char* new static StringTableEntry sOrbitDistance = StringTable->insert( "orbitDistance" ); static StringTableEntry sMinOrbitDistance = StringTable->insert( "minOrbitDistance" ); static StringTableEntry sMaxOrbitDistance = StringTable->insert( "maxOrbitDistance" ); + static StringTableEntry sCameraRotation = StringTable->insert( "cameraRotation" ); static StringTableEntry sAnimSequence = StringTable->insert( "animSequence" ); if( slotName == sShapeFile ) @@ -225,6 +227,8 @@ void GuiObjectView::onStaticModified( StringTableEntry slotName, const char* new setLightDirection( mLightDirection ); else if( slotName == sOrbitDistance || slotName == sMinOrbitDistance || slotName == sMaxOrbitDistance ) setOrbitDistance( mOrbitDist ); + else if( slotName == sCameraRotation ) + setCameraRotation( mCameraRotation ); else if( slotName == sAnimSequence ) setObjectAnimation( String( mAnimationSeqName ) ); } @@ -579,6 +583,12 @@ void GuiObjectView::setCameraSpeed( F32 factor ) //------------------------------------------------------------------------------ +void GuiObjectView::setCameraRotation( const EulerF& rotation ) +{ + mCameraRot.set(rotation); +} + +//------------------------------------------------------------------------------ void GuiObjectView::setLightColor( const ColorF& color ) { mLightColor = color; diff --git a/Engine/source/T3D/guiObjectView.h b/Engine/source/T3D/guiObjectView.h index 6007483a7..da4898e61 100644 --- a/Engine/source/T3D/guiObjectView.h +++ b/Engine/source/T3D/guiObjectView.h @@ -88,6 +88,7 @@ class GuiObjectView : public GuiTSCtrl F32 mMaxOrbitDist; F32 mMinOrbitDist; + EulerF mCameraRotation; /// F32 mOrbitDist; @@ -245,6 +246,9 @@ class GuiObjectView : public GuiTSCtrl /// @param distance The distance to set the orbit to (will be clamped). void setOrbitDistance( F32 distance ); + /// Sets the angle of the camera on it's orbit in relation to the object. + void setCameraRotation( const EulerF& rotation ); + /// @} /// @name Lighting