Subversion Repositories gelsvn

Rev

Rev 290 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 290 Rev 291
1
#ifndef __BOUNDINGINODE_H
1
#ifndef __BOUNDINGINODE_H
2
#define __BOUNDINGINODE_H
2
#define __BOUNDINGINODE_H
3
 
3
 
4
#include "BoundingNode.h"
4
#include "BoundingNode.h"
5
 
5
 
-
 
6
namespace Geometry
-
 
7
{
-
 
8
 
6
/** Interior node of bounding box tree. Contains
9
/** Interior node of bounding box tree. Contains
7
		pointers to left and right tree. */
10
		pointers to left and right tree. */
8
template<class BoxType>
11
template<class BoxType>
9
class BoundingINode: public BoundingNode<BoxType>
12
class BoundingINode: public BoundingNode<BoxType>
10
{
13
{
11
	BoundingNode<BoxType>* left;
14
	BoundingNode<BoxType>* left;
12
	BoundingNode<BoxType>* right;
15
	BoundingNode<BoxType>* right;
13
 public:
16
 public:
14
 
17
 
15
	BoundingINode(const BoxType& box,
18
	BoundingINode(const BoxType& box,
16
								BoundingNode<BoxType>* _left,
19
								BoundingNode<BoxType>* _left,
17
								BoundingNode<BoxType>* _right): 
20
								BoundingNode<BoxType>* _right): 
18
		BoundingNode<BoxType>(box), left(_left), right(_right) {}
21
		BoundingNode<BoxType>(box), left(_left), right(_right) {}
19
 
22
 
20
	~BoundingINode() {delete left; delete right;}
23
	~BoundingINode() {delete left; delete right;}
21
 
24
 
22
	bool intersect(const CGLA::Vec3f&,const CGLA::Vec3f&,float&) const; 
25
	bool intersect(const CGLA::Vec3f&,const CGLA::Vec3f&,float&) const; 
23
	int intersect_cnt(const CGLA::Vec3f&,const CGLA::Vec3f&) const;
26
	int intersect_cnt(const CGLA::Vec3f&,const CGLA::Vec3f&) const;
24
 
27
 
25
	const BoundingNode<BoxType>* get_left() const {return left;}
28
	const BoundingNode<BoxType>* get_left() const {return left;}
26
	const BoundingNode<BoxType>* get_right() const {return right;}
29
	const BoundingNode<BoxType>* get_right() const {return right;}
27
 
-
 
28
	void draw(int l, int lmax) const;
-
 
29
 
-
 
30
};
30
};
31
 
31
 
-
 
32
}
32
#endif
33
#endif
33
 
34