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 void initialize(); 00048 void shutdown(); 00049 00050 // inherited methods 00051 /*virtual*/ void setVisible(BOOL visible); 00052 00053 void setCameraTargetJoint(LLJoint *joint) {mCameraTargetJoint = joint;} 00054 LLJoint* getCameraTargetJoint() {return mCameraTargetJoint;} 00055 00056 void setCameraOffset(const LLVector3d& camera_offset) {mCameraOffset = camera_offset;} 00057 void setCameraTargetOffset(const LLVector3d& camera_target_offset) {mCameraTargetOffset = camera_target_offset;} 00058 void setCameraDistToDefault() { mCameraDist = -1.f; } 00059 00060 void updateCamera(); 00061 void setCameraDrivenByKeys( BOOL b ); 00062 00063 protected: 00064 LLJoint* mCameraTargetJoint; 00065 LLVector3d mCameraOffset; 00066 LLVector3d mCameraTargetOffset; 00067 LLVector3d mOldCameraPos; 00068 LLVector3d mOldTargetPos; 00069 F32 mOldCameraNearClip; 00070 LLFrameTimer mCameraMoveTimer; 00071 00072 // camera rotation 00073 F32 mCameraPitch; 00074 F32 mCameraYaw; 00075 00076 // camera zoom 00077 F32 mCameraDist; 00078 00079 BOOL mCameraDrivenByKeys; 00080 }; 00081 00082 // 00083 // Globals 00084 // 00085 00086 extern LLMorphView *gMorphView; 00087 00088 #endif