00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __IENGINE_CAMPOS_H__
00020 #define __IENGINE_CAMPOS_H__
00021
00022 #include "csutil/scf.h"
00023
00024 class csVector3;
00025 struct iObject;
00026 struct iEngine;
00027 struct iCamera;
00028
00029 SCF_VERSION (iCameraPosition, 0, 0, 2);
00030
00034 struct iCameraPosition : public iBase
00035 {
00037 virtual iObject *QueryObject() = 0;
00038
00039 virtual const char *GetSector() = 0;
00040
00041 virtual csVector3 GetPosition() = 0;
00042
00043 virtual csVector3 GetUpwardVector() = 0;
00044
00045 virtual csVector3 GetForwardVector() = 0;
00046
00048 virtual bool Load (iCamera*, iEngine*) = 0;
00049
00050 virtual void Set (const char *sector, const csVector3 &pos,
00051 const csVector3 &forward, const csVector3 &upward) = 0;
00052 };
00053
00054 SCF_VERSION (iCameraPositionList, 0, 0, 1);
00055
00056 struct iCameraPositionList : public iBase
00057 {
00059 virtual iCameraPosition* NewCameraPosition (const char* name) = 0;
00060
00062 virtual int GetCount () const = 0;
00063
00065 virtual iCameraPosition *Get (int n) const = 0;
00066
00068 virtual int Add (iCameraPosition *obj) = 0;
00069
00071 virtual bool Remove (iCameraPosition *obj) = 0;
00072
00074 virtual bool Remove (int n) = 0;
00075
00077 virtual void RemoveAll () = 0;
00078
00080 virtual int Find (iCameraPosition *obj) const = 0;
00081
00083 virtual iCameraPosition *FindByName (const char *Name) const = 0;
00084 };
00085
00086 #endif
00087