00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef __GU_Attractor_h__
00015 #define __GU_Attractor_h__
00016
00017 #include "GU_API.h"
00018 #include <UT/UT_Vector3.h>
00019
00020 class GEO_Point;
00021 class GU_Detail;
00022 class GU_AttractorOffsets;
00023 class GU_PtAttractorOffsets;
00024
00025 class GU_API GU_Attractor
00026 {
00027 public:
00028
00029 GU_Attractor (void);
00030 ~GU_Attractor (void);
00031
00032 void setAttractor (GU_Detail *gdp);
00033
00034
00035 GEO_Point* getAttractorForce
00036 (const GEO_Point *ppt,
00037 UT_Vector3 &force,
00038 int singleAttractor = 0,
00039 unsigned num = 0);
00040 GEO_Point* getAttractorForce
00041 (const UT_Vector4 &pos,
00042 UT_Vector3 &force,
00043 int singleAttractor = 0,
00044 unsigned num = 0);
00045
00046 void initPointAttractorForce();
00047 void cleanPointAttractorForce();
00048
00049 private:
00050 GEO_Point* getPointAttractorForce( const UT_Vector4 &pos,
00051 UT_Vector3 &force,
00052 int singleAttractor,
00053 unsigned num);
00054
00055 GU_Detail* attractor;
00056 GU_AttractorOffsets* attOffsets;
00057 GU_PtAttractorOffsets* ptAttOffsets;
00058 int myNmlOffset;
00059 int myComputedNormal;
00060 };
00061
00062 #endif