00001 00032 #ifndef LL_LLMORPHVIEW_H 00033 #define LL_LLMORPHVIEW_H 00034 00035 #include "llview.h" 00036 #include "v3dmath.h" 00037 #include "llframetimer.h" 00038 00039 class LLJoint; 00040 class LLFloaterCustomize; 00041 00042 class LLMorphView : public LLView 00043 { 00044 public: 00045 LLMorphView(const std::string& name, const LLRect& rect); 00046 00047 virtual EWidgetType getWidgetType() const; 00048 virtual LLString getWidgetTag() const; 00049 00050 void initialize(); 00051 void shutdown(); 00052 00053 // inherited methods 00054 /*virtual*/ void setVisible(BOOL visible); 00055 00056 void setCameraTargetJoint(LLJoint *joint) {mCameraTargetJoint = joint;} 00057 LLJoint* getCameraTargetJoint() {return mCameraTargetJoint;} 00058 00059 void setCameraOffset(const LLVector3d& camera_offset) {mCameraOffset = camera_offset;} 00060 void setCameraTargetOffset(const LLVector3d& camera_target_offset) {mCameraTargetOffset = camera_target_offset;} 00061 void setCameraDistToDefault() { mCameraDist = -1.f; } 00062 00063 void updateCamera(); 00064 void setCameraDrivenByKeys( BOOL b ); 00065 00066 protected: 00067 LLJoint* mCameraTargetJoint; 00068 LLVector3d mCameraOffset; 00069 LLVector3d mCameraTargetOffset; 00070 LLVector3d mOldCameraPos; 00071 LLVector3d mOldTargetPos; 00072 F32 mOldCameraNearClip; 00073 LLFrameTimer mCameraMoveTimer; 00074 00075 // camera rotation 00076 F32 mCameraPitch; 00077 F32 mCameraYaw; 00078 00079 // camera zoom 00080 F32 mCameraDist; 00081 00082 BOOL mCameraDrivenByKeys; 00083 }; 00084 00085 // 00086 // Globals 00087 // 00088 00089 extern LLMorphView *gMorphView; 00090 00091 #endif