Subversion Repositories gelsvn

Rev

Rev 299 | Rev 324 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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