RigsofRods
Soft-body Physics Simulation
Data Structures | Public Member Functions | Data Fields | Private Member Functions | Private Attributes
RoR::PointColDetector Class Reference

#include <PointColDetector.h>

+ Collaboration diagram for RoR::PointColDetector:

Data Structures

struct  kdnode_t
 
struct  pointid_t
 
struct  refelem_t
 

Public Member Functions

 PointColDetector (ActorPtr actor)
 
void UpdateIntraPoint (bool contactables=false)
 
void UpdateInterPoint (bool ignorestate=false)
 
void query (const Ogre::Vector3 &vec1, const Ogre::Vector3 &vec2, const Ogre::Vector3 &vec3, const float enlargeBB)
 

Data Fields

std::vector< PointidID_thit_list
 
std::unordered_set< ActorInstanceID_thit_list_actorset
 
std::vector< pointid_thit_pointid_list
 

Private Member Functions

void queryrec (int kdindex, int axis)
 
void build_kdtree_incr (int axis, int index)
 
void partintwo (const int start, const int median, const int end, const int axis, float &minex, float &maxex)
 
void update_structures_for_contacters (bool ignoreinternal)
 
void refresh_node_positions ()
 

Private Attributes

ActorPtr m_actor
 
std::vector< ActorInstanceID_tm_collision_partners
 IntraPoint: always just owning actor; InterPoint: all colliding actors. More...
 
std::vector< refelem_tm_ref_list
 
std::vector< kdnode_tm_kdtree
 
Ogre::Vector3 m_bbmin = Ogre::Vector3::ZERO
 
Ogre::Vector3 m_bbmax = Ogre::Vector3::ZERO
 
int m_object_list_size = 0
 

Detailed Description

Definition at line 32 of file PointColDetector.h.

Constructor & Destructor Documentation

◆ PointColDetector()

RoR::PointColDetector::PointColDetector ( ActorPtr  actor)
inline

Definition at line 46 of file PointColDetector.h.

Member Function Documentation

◆ build_kdtree_incr()

void PointColDetector::build_kdtree_incr ( int  axis,
int  index 
)
private

Definition at line 223 of file PointColDetector.cpp.

◆ partintwo()

void PointColDetector::partintwo ( const int  start,
const int  median,
const int  end,
const int  axis,
float &  minex,
float &  maxex 
)
private

Definition at line 292 of file PointColDetector.cpp.

◆ query()

void PointColDetector::query ( const Ogre::Vector3 &  vec1,
const Ogre::Vector3 &  vec2,
const Ogre::Vector3 &  vec3,
const float  enlargeBB 
)

Definition at line 126 of file PointColDetector.cpp.

+ Here is the caller graph for this function:

◆ queryrec()

void PointColDetector::queryrec ( int  kdindex,
int  axis 
)
private

Definition at line 159 of file PointColDetector.cpp.

◆ refresh_node_positions()

void PointColDetector::refresh_node_positions ( )
private

Definition at line 342 of file PointColDetector.cpp.

+ Here is the call graph for this function:

◆ update_structures_for_contacters()

void PointColDetector::update_structures_for_contacters ( bool  ignoreinternal)
private

Definition at line 97 of file PointColDetector.cpp.

+ Here is the call graph for this function:

◆ UpdateInterPoint()

void PointColDetector::UpdateInterPoint ( bool  ignorestate = false)

Definition at line 51 of file PointColDetector.cpp.

+ Here is the call graph for this function:

◆ UpdateIntraPoint()

void PointColDetector::UpdateIntraPoint ( bool  contactables = false)

Definition at line 30 of file PointColDetector.cpp.

Field Documentation

◆ hit_list

std::vector<PointidID_t> RoR::PointColDetector::hit_list

Definition at line 42 of file PointColDetector.h.

◆ hit_list_actorset

std::unordered_set<ActorInstanceID_t> RoR::PointColDetector::hit_list_actorset

Definition at line 43 of file PointColDetector.h.

◆ hit_pointid_list

std::vector<pointid_t> RoR::PointColDetector::hit_pointid_list

Definition at line 44 of file PointColDetector.h.

◆ m_actor

ActorPtr RoR::PointColDetector::m_actor
private

Definition at line 71 of file PointColDetector.h.

◆ m_bbmax

Ogre::Vector3 RoR::PointColDetector::m_bbmax = Ogre::Vector3::ZERO
private

Definition at line 77 of file PointColDetector.h.

◆ m_bbmin

Ogre::Vector3 RoR::PointColDetector::m_bbmin = Ogre::Vector3::ZERO
private

Definition at line 76 of file PointColDetector.h.

◆ m_collision_partners

std::vector<ActorInstanceID_t> RoR::PointColDetector::m_collision_partners
private

IntraPoint: always just owning actor; InterPoint: all colliding actors.

Definition at line 72 of file PointColDetector.h.

◆ m_kdtree

std::vector<kdnode_t> RoR::PointColDetector::m_kdtree
private

Definition at line 75 of file PointColDetector.h.

◆ m_object_list_size

int RoR::PointColDetector::m_object_list_size = 0
private

Definition at line 78 of file PointColDetector.h.

◆ m_ref_list

std::vector<refelem_t> RoR::PointColDetector::m_ref_list
private

Definition at line 73 of file PointColDetector.h.


The documentation for this class was generated from the following files: