Classes |
struct | Neighbour |
struct | ObjectPlaceholder |
struct | ObjectReference |
struct | ObjectSorter |
Public Types |
typedef
TemplatedOctree::BoundingBoxType | BoundingBoxType |
typedef TemplatedOctree::CenterType | CenterType |
typedef
TemplatedOctree::CoordinateType | CoordType |
typedef Octree::InnerNode * | InnerNodePointer |
typedef Octree::Leaf * | LeafPointer |
typedef std::vector< Neighbour >
::iterator | NeighbourIterator |
typedef TemplatedOctree::NodeIndex | NodeIndex |
typedef
TemplatedOctree::NodePointer | NodePointer |
typedef TemplatedOctree::NodeType | NodeType |
typedef ReferenceType
< OBJECT_TYPE >::Type * | ObjectPointer |
typedef OBJECT_TYPE | ObjectType |
typedef SCALAR_TYPE | ScalarType |
typedef vcg::OctreeTemplate
< VoxelType, SCALAR_TYPE > | TemplatedOctree |
typedef VoxelType * | VoxelPointer |
typedef vcg::Voxel | VoxelType |
typedef TemplatedOctree::ZOrderType | ZOrderType |
Public Member Functions |
template<class OBJECT_POINT_DISTANCE_FUNCTOR , class OBJECT_MARKER > |
ObjectPointer | GetClosest (OBJECT_POINT_DISTANCE_FUNCTOR &distance_functor, OBJECT_MARKER &, const CoordType &query_point, const ScalarType &max_distance, ScalarType &distance, CoordType &point, bool allow_zero_distance=true) |
template<class OBJECT_MARKER , class OBJECT_POINTER_CONTAINER > |
unsigned int | GetInBox (OBJECT_MARKER &, const BoundingBoxType &query_bounding_box, OBJECT_POINTER_CONTAINER &objects) |
template<class OBJECT_POINT_DISTANCE_FUNCTOR , class OBJECT_MARKER , class OBJECT_POINTER_CONTAINER , class DISTANCE_CONTAINER , class POINT_CONTAINER > |
unsigned int | GetInSphere (OBJECT_POINT_DISTANCE_FUNCTOR &distance_functor, OBJECT_MARKER &, const CoordType &sphere_center, const ScalarType &sphere_radius, OBJECT_POINTER_CONTAINER &objects, DISTANCE_CONTAINER &distances, POINT_CONTAINER &points, bool sort_per_distance=false, bool allow_zero_distance=false) |
template<class OBJECT_POINT_DISTANCE_FUNCTOR , class OBJECT_MARKER , class OBJECT_POINTER_CONTAINER , class DISTANCE_CONTAINER , class POINT_CONTAINER > |
unsigned int | GetKClosest (OBJECT_POINT_DISTANCE_FUNCTOR &distance_functor, OBJECT_MARKER &, unsigned int k, const CoordType &query_point, const ScalarType &max_distance, OBJECT_POINTER_CONTAINER &objects, DISTANCE_CONTAINER &distances, POINT_CONTAINER &points, bool sort_per_distance=true, bool allow_zero_distance=true) |
| Octree () |
template<class OBJECT_ITERATOR > |
void | Set (const OBJECT_ITERATOR &bObj, const OBJECT_ITERATOR &eObj) |
| ~Octree () |
Protected Member Functions |
int | AdjustBoundingBox (BoundingBoxType &query_bb, ScalarType &sphere_radius, const ScalarType max_allowed_distance, std::vector< NodePointer > &leaves, const int required_object_count) |
template<class OBJECT_POINTER_CONTAINER , class DISTANCE_CONTAINER , class POINT_CONTAINER > |
int | CopyQueryResults (std::vector< Neighbour > &neighbors, const unsigned int object_count, OBJECT_POINTER_CONTAINER &objects, DISTANCE_CONTAINER &distances, POINT_CONTAINER &points) |
bool | GuessInitialBoundingBox (const CoordType &query_point, const ScalarType max_distance, ScalarType &sphere_radius, BoundingBoxType &query_bb) |
void | IncrementMark () |
void | IndexInnerNodes (NodePointer n) |
bool | IsMarked (const ObjectReference *ref) const |
void | Mark (const ObjectReference *ref) |
template<class OBJECT_POINT_DISTANCE_FUNCTOR > |
int | RetrieveContainedObjects (const CoordType query_point, OBJECT_POINT_DISTANCE_FUNCTOR &distance_functor, const ScalarType max_allowed_distance, bool allow_zero_distance, std::vector< NodePointer > &leaves, std::vector< Neighbour > &neighbors) |
Protected Attributes |
unsigned char | global_mark |
unsigned char * | marks |
std::vector< ObjectReference > | sorted_dataset |
template<class OBJECT_TYPE, class SCALAR_TYPE>
template<class OBJECT_POINTER_CONTAINER , class DISTANCE_CONTAINER , class POINT_CONTAINER >
int vcg::Octree< OBJECT_TYPE, SCALAR_TYPE >::CopyQueryResults |
( |
std::vector< Neighbour > & |
neighbors, |
|
|
const unsigned int |
object_count, |
|
|
OBJECT_POINTER_CONTAINER & |
objects, |
|
|
DISTANCE_CONTAINER & |
distances, |
|
|
POINT_CONTAINER & |
points | |
|
) |
| | [inline, protected] |
Copy the results of a query
Definition at line 691 of file octree.h.
template<class OBJECT_TYPE, class SCALAR_TYPE>
template<class OBJECT_POINT_DISTANCE_FUNCTOR , class OBJECT_MARKER , class OBJECT_POINTER_CONTAINER , class DISTANCE_CONTAINER , class POINT_CONTAINER >
unsigned int vcg::Octree< OBJECT_TYPE, SCALAR_TYPE >::GetInSphere |
( |
OBJECT_POINT_DISTANCE_FUNCTOR & |
distance_functor, |
|
|
OBJECT_MARKER & |
, |
|
|
const CoordType & |
sphere_center, |
|
|
const ScalarType & |
sphere_radius, |
|
|
OBJECT_POINTER_CONTAINER & |
objects, |
|
|
DISTANCE_CONTAINER & |
distances, |
|
|
POINT_CONTAINER & |
points, |
|
|
bool |
sort_per_distance = false , |
|
|
bool |
allow_zero_distance = false | |
|
) |
| | [inline] |
Returns all the objects contained inside a specified sphere
Definition at line 448 of file octree.h.
template<class OBJECT_TYPE, class SCALAR_TYPE>
template<class OBJECT_POINT_DISTANCE_FUNCTOR , class OBJECT_MARKER , class OBJECT_POINTER_CONTAINER , class DISTANCE_CONTAINER , class POINT_CONTAINER >
unsigned int vcg::Octree< OBJECT_TYPE, SCALAR_TYPE >::GetKClosest |
( |
OBJECT_POINT_DISTANCE_FUNCTOR & |
distance_functor, |
|
|
OBJECT_MARKER & |
, |
|
|
unsigned int |
k, |
|
|
const CoordType & |
query_point, |
|
|
const ScalarType & |
max_distance, |
|
|
OBJECT_POINTER_CONTAINER & |
objects, |
|
|
DISTANCE_CONTAINER & |
distances, |
|
|
POINT_CONTAINER & |
points, |
|
|
bool |
sort_per_distance = true , |
|
|
bool |
allow_zero_distance = true | |
|
) |
| | [inline] |
Retrieve the k closest element to the query point
Definition at line 396 of file octree.h.