00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CEL_PF_MECHANICS_ATTRACTOR__
00021 #define __CEL_PF_MECHANICS_ATTRACTOR__
00022
00024
00026
00027 #include "cstypes.h"
00028 #include "csutil/scf.h"
00029 #include "csutil/csobject.h"
00030
00031 struct iPcSolid;
00032 class csVector3;
00033
00044 struct iPcEnvAttractor : public virtual iBase
00045 {
00046 SCF_INTERFACE (iPcEnvAttractor, 0, 0, 1);
00047
00052 virtual void SetStrengthAtCenter (float strength) = 0;
00056 virtual float GetStrengthAtCenter () = 0;
00057
00061 virtual void SetMaxRadius (float radius) = 0;
00065 virtual float GetMaxRadius () = 0;
00066 };
00067
00068
00072 class celEnvFluid : public scfImplementationExt1<
00073 celEnvFluid, csObject, scfFakeInterface<celEnvFluid> >
00074 {
00075 public:
00076 SCF_INTERFACE (celEnvFluid, 0, 0, 1);
00077
00078 celEnvFluid () : scfImplementationType (this) { }
00079 virtual ~celEnvFluid () { }
00080
00084 float density;
00088 csVector3 flow;
00089 };
00090
00094 class celEnvGravity : public scfImplementationExt1<
00095 celEnvGravity, csObject, scfFakeInterface<celEnvGravity> >
00096 {
00097 public:
00098 SCF_INTERFACE (celEnvGravity, 0, 0, 1);
00099
00100 celEnvGravity () : scfImplementationType (this) { }
00101 virtual ~celEnvGravity () { }
00102
00106 csVector3 gravity;
00107 };
00108
00109 #endif // __CEL_PF_MECHANICS_ATTRACTOR__
00110