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