00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CEL_PF_DEFAULT_CAMERA__
00021 #define __CEL_PF_DEFAULT_CAMERA__
00022
00023 #include "propclass/camera.h"
00024
00025 struct iCelEntity;
00026
00055 struct iPcDefaultCamera : public virtual iPcCamera
00056 {
00057 SCF_INTERFACE (iPcDefaultCamera, 0, 0, 3);
00058
00062 enum CameraMode
00063 {
00064 freelook = 0,
00065 firstperson,
00066 thirdperson,
00067 m64_thirdperson,
00068 lara_thirdperson,
00069
00070 actual_data,
00071 last_actual,
00072 transition,
00073 camerror,
00074
00075 CameraMode_count
00076 };
00077
00083 virtual void SetFollowEntity (iCelEntity* entity) = 0;
00084
00088 virtual bool SetMode (CameraMode m, bool use_cd = true) = 0;
00089
00093 virtual CameraMode GetMode () const = 0;
00094
00098 virtual bool SetModeName (const char* m, bool use_cd = true) = 0;
00099
00103 virtual const char* GetModeName () const = 0;
00104
00109 virtual CameraMode GetNextMode () const = 0;
00110
00115 virtual bool PointCamera (const char* start) = 0;
00116
00120 virtual void SetSpringParameters (float springCoef,
00121 float intertialDampeningCoef, float springLength) = 0;
00122
00128 virtual void SetMinMaxCameraDistance (float minDistance,
00129 float maxDistance) = 0;
00130
00135 virtual void SetTurnSpeed (float turnSpeed) = 0;
00136
00140 virtual void SetSwingCoef (float swingCoef) = 0;
00141
00146 virtual void SetFirstPersonOffset (const csVector3& offset) = 0;
00147
00152 virtual void SetThirdPersonOffset (const csVector3& offset) = 0;
00153
00158 virtual void CenterCamera () = 0;
00159
00163 virtual void SetPitch (float pitch) = 0;
00164
00168 virtual float GetPitch () const = 0;
00169
00174 virtual void SetPitchVelocity (float pitchVel) = 0;
00175
00179 virtual float GetPitchVelocity () const = 0;
00180
00187 virtual void MovePitch (float deltaPitch, int mode = -1) = 0;
00188
00195 virtual void SetYaw (float yaw, int mode = -1) = 0;
00196
00203 virtual void MoveYaw (float deltaYaw, int mode = -1) = 0;
00204
00211 virtual float GetYaw (int mode = -1) const = 0;
00212
00217 virtual void SetYawVelocity (float yawVel) = 0;
00218
00223 virtual float GetYawVelocity () const = 0;
00224
00230 virtual void SetDistance (float distance, int mode=-1) = 0;
00231
00237 virtual float GetDistance (int mode=-1) = 0;
00238
00243 virtual void SetDistanceVelocity (float distanceVel) = 0;
00244
00249 virtual float GetDistanceVelocity () const = 0;
00250
00251 };
00252
00253 #endif // __CEL_PF_DEFAULT_CAMERA_FACTORY__
00254