00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_CAMPOS_H__
00020 #define __CS_CAMPOS_H__
00021
00022 #include "csutil/csobject.h"
00023 #include "csutil/nobjvec.h"
00024 #include "csgeom/vector3.h"
00025 #include "csengine/camera.h"
00026 #include "iengine/campos.h"
00027
00028 struct iEngine;
00029 struct iCamera;
00030 class csPlane3;
00031
00036 class csCameraPosition : public csObject
00037 {
00038 private:
00040 virtual ~csCameraPosition ();
00041
00042 private:
00044 char* sector;
00046 csVector3 position;
00048 csVector3 forward;
00050 csVector3 upward;
00056 csPlane3* far_plane;
00057
00058 public:
00060 csCameraPosition (const char *name, const char *sector,
00061 const csVector3 &position,
00062 const csVector3 &forward, const csVector3 &upward);
00063
00065 void Set (const char *sector, const csVector3 &position,
00066 const csVector3 &forward, const csVector3 &upward);
00067
00069 bool Load (iCamera*, iEngine*);
00070
00071 void SetFarPlane (csPlane3* pl);
00072 void ClearFarPlane ();
00073
00074 SCF_DECLARE_IBASE_EXT (csObject);
00075
00076
00078
00079 {
00080 SCF_DECLARE_EMBEDDED_IBASE(csCameraPosition);
00081
00082 virtual iObject *QueryObject();
00083 virtual iCameraPosition *Clone () const;
00084 virtual const char *GetSector();
00085 virtual void SetSector(const char *Name);
00086 virtual const csVector3 &GetPosition();
00087 virtual void SetPosition (const csVector3 &v);
00088 virtual const csVector3 &GetUpwardVector();
00089 virtual void SetUpwardVector (const csVector3 &v);
00090 virtual const csVector3 &GetForwardVector();
00091 virtual void SetForwardVector (const csVector3 &v);
00092 virtual void Set (const char *sector, const csVector3 &pos,
00093 const csVector3 &forward, const csVector3 &upward);
00094 virtual bool Load (iCamera *c, iEngine *e);
00095 virtual void SetFarPlane (csPlane3* pl)
00096 {
00097 scfParent->SetFarPlane (pl);
00098 }
00099 virtual void ClearFarPlane ()
00100 {
00101 scfParent->ClearFarPlane ();
00102 }
00103 virtual csPlane3* GetFarPlane () const
00104 {
00105 return scfParent->far_plane;
00106 }
00107 } scfiCameraPosition;
00108 friend struct CameraPosition;
00109 };
00110
00111 #endif // __CS_CAMPOS_H__