FCL
0.6.0
Flexible Collision Library

KDOP class describes the KDOP collision structures. K is set as the template parameter, which should be 16, 18, or 24 The KDOP structure is defined by some pairs of parallel planes defined by some axes. For K = 16, the planes are 6 AABB planes and 10 diagonal planes that cut off some space of the edges: (1,0,0) and (1,0,0) > indices 0 and 8 (0,1,0) and (0,1,0) > indices 1 and 9 (0,0,1) and (0,0,1) > indices 2 and 10 (1,1,0) and (1,1,0) > indices 3 and 11 (1,0,1) and (1,0,1) > indices 4 and 12 (0,1,1) and (0,1,1) > indices 5 and 13 (1,1,0) and (1,1,0) > indices 6 and 14 (1,0,1) and (1,0,1) > indices 7 and 15 For K = 18, the planes are 6 AABB planes and 12 diagonal planes that cut off some space of the edges: (1,0,0) and (1,0,0) > indices 0 and 9 (0,1,0) and (0,1,0) > indices 1 and 10 (0,0,1) and (0,0,1) > indices 2 and 11 (1,1,0) and (1,1,0) > indices 3 and 12 (1,0,1) and (1,0,1) > indices 4 and 13 (0,1,1) and (0,1,1) > indices 5 and 14 (1,1,0) and (1,1,0) > indices 6 and 15 (1,0,1) and (1,0,1) > indices 7 and 16 (0,1,1) and (0,1,1) > indices 8 and 17 For K = 18, the planes are 6 AABB planes and 18 diagonal planes that cut off some space of the edges: (1,0,0) and (1,0,0) > indices 0 and 12 (0,1,0) and (0,1,0) > indices 1 and 13 (0,0,1) and (0,0,1) > indices 2 and 14 (1,1,0) and (1,1,0) > indices 3 and 15 (1,0,1) and (1,0,1) > indices 4 and 16 (0,1,1) and (0,1,1) > indices 5 and 17 (1,1,0) and (1,1,0) > indices 6 and 18 (1,0,1) and (1,0,1) > indices 7 and 19 (0,1,1) and (0,1,1) > indices 8 and 20 (1, 1, 1) and (1, 1, 1) –> indices 9 and 21 (1, 1, 1) and (1, 1, 1) –> indices 10 and 22 (1, 1, 1) and (1, 1, 1) –> indices 11 and 23. More...
#include <kDOP.h>
Public Types  
using  S = S_ 
Public Member Functions  
KDOP ()  
Creating kDOP containing nothing.  
KDOP (const Vector3< S > &v)  
Creating kDOP containing only one point.  
KDOP (const Vector3< S > &a, const Vector3< S > &b)  
Creating kDOP containing two points.  
bool  overlap (const KDOP< S, N > &other) const 
Check whether two KDOPs are overlapped.  
bool  inside (const Vector3< S > &p) const 
KDOP< S, N > &  operator+= (const Vector3< S > &p) 
Merge the point and the KDOP.  
KDOP< S, N > &  operator+= (const KDOP< S, N > &other) 
Merge two KDOPs.  
KDOP< S, N >  operator+ (const KDOP< S, N > &other) const 
Create a KDOP by mergin two KDOPs.  
S  width () const 
The (AABB) width.  
S  height () const 
The (AABB) height.  
S  depth () const 
The (AABB) depth.  
S  volume () const 
The (AABB) volume.  
S  size () const 
Size of the kDOP (used in BV_Splitter to order two kDOPs)  
Vector3< S >  center () const 
The (AABB) center.  
S  distance (const KDOP< S, N > &other, Vector3< S > *P=nullptr, Vector3< S > *Q=nullptr) const 
The distance between two KDOP<S, N>. Not implemented.  
S  dist (std::size_t i) const 
S &  dist (std::size_t i) 
KDOP class describes the KDOP collision structures. K is set as the template parameter, which should be 16, 18, or 24 The KDOP structure is defined by some pairs of parallel planes defined by some axes. For K = 16, the planes are 6 AABB planes and 10 diagonal planes that cut off some space of the edges: (1,0,0) and (1,0,0) > indices 0 and 8 (0,1,0) and (0,1,0) > indices 1 and 9 (0,0,1) and (0,0,1) > indices 2 and 10 (1,1,0) and (1,1,0) > indices 3 and 11 (1,0,1) and (1,0,1) > indices 4 and 12 (0,1,1) and (0,1,1) > indices 5 and 13 (1,1,0) and (1,1,0) > indices 6 and 14 (1,0,1) and (1,0,1) > indices 7 and 15 For K = 18, the planes are 6 AABB planes and 12 diagonal planes that cut off some space of the edges: (1,0,0) and (1,0,0) > indices 0 and 9 (0,1,0) and (0,1,0) > indices 1 and 10 (0,0,1) and (0,0,1) > indices 2 and 11 (1,1,0) and (1,1,0) > indices 3 and 12 (1,0,1) and (1,0,1) > indices 4 and 13 (0,1,1) and (0,1,1) > indices 5 and 14 (1,1,0) and (1,1,0) > indices 6 and 15 (1,0,1) and (1,0,1) > indices 7 and 16 (0,1,1) and (0,1,1) > indices 8 and 17 For K = 18, the planes are 6 AABB planes and 18 diagonal planes that cut off some space of the edges: (1,0,0) and (1,0,0) > indices 0 and 12 (0,1,0) and (0,1,0) > indices 1 and 13 (0,0,1) and (0,0,1) > indices 2 and 14 (1,1,0) and (1,1,0) > indices 3 and 15 (1,0,1) and (1,0,1) > indices 4 and 16 (0,1,1) and (0,1,1) > indices 5 and 17 (1,1,0) and (1,1,0) > indices 6 and 18 (1,0,1) and (1,0,1) > indices 7 and 19 (0,1,1) and (0,1,1) > indices 8 and 20 (1, 1, 1) and (1, 1, 1) –> indices 9 and 21 (1, 1, 1) and (1, 1, 1) –> indices 10 and 22 (1, 1, 1) and (1, 1, 1) –> indices 11 and 23.