00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef animal_octreeOctreeEngine_h
00013 #define animal_octreeOctreeEngine_h
00014
00015 #include <Octree.h>
00016 #include <animal/engine/engine.h>
00017
00018 namespace animal
00019 {
00020
00021 namespace octree
00022 {
00023
00029 class OctreeEngine : public Octree, public Engine
00030 {
00031 public:
00032 OctreeEngine(Vec3d bboxMin, Vec3d bboxMax, MFVec3f *points, MFVec3f normals, unsigned int nMaxPointsPerCell);
00033
00034 ~OctreeEngine();
00035
00036 virtual void move( double dt );
00037 virtual void init();
00038
00039 protected:
00040 double _time;
00041
00043 void readPositionsFrom( int );
00044
00046 void writePositionsTo( int );
00047
00049 void v_eq( int target_value_id, int a);
00050
00052 void v_assign( int target_value_id, const Vec3d& a);
00053
00055 void v_eq_a_plus_alpha_b( int target_value_id, int a, FloatingPointType alpha, int b );
00056
00057
00058 };
00059
00060
00061 };
00062
00063 };
00064
00065 #endif