00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef TA_SPACEDIVISION_H
00013 #define TA_SPACEDIVISION_H
00014
00015 #ifndef TA_SPACEDIVISIONOBJECT_H
00016 #include "SpaceDivisionObject.h"
00017 #endif // TA_SPACEDIVISIONOBJECT_H
00018
00019 namespace TA
00020 {
00021
00022 struct AABB;
00023 struct Vec3;
00024
00025 class SpaceDivision
00026 {
00027 public:
00028 TA_OBFUSCATION_RESERVED_OFF
00029 virtual ~SpaceDivision() {};
00030
00031 virtual void Add(SpaceDivisionObject& object) = 0;
00032 virtual void Remove(SpaceDivisionObject& object) = 0;
00033
00034 virtual void ForAllIntersections(
00035 const AABB& aabb,
00036 void (TAC_CALL *callBack)(SpaceDivisionObject& object, void* pData),
00037 void* pCallBackData) = 0;
00038
00039 virtual void ForAllIntersectionsWithLineSegment(
00040 const Vec3& v3Start,
00041 const Vec3& v3End,
00042 void (TAC_CALL *callBack)(SpaceDivisionObject& object, void* pData),
00043 void* pCallBackData) = 0;
00044 TA_OBFUSCATION_RESERVED_ON
00045
00046 private:
00047 };
00048
00049 }
00050
00051 #endif // TA_SPACEDIVISION_H
© Copyright 2004-2006 TRUE AXIS PTY LTD Australia. All rights reserved.