PeriDyno 1.0.0
Loading...
Searching...
No Matches
dyno::CollisionDetectionBroadPhase< TDataType > Class Template Reference

#include <CollisionDetectionBroadPhase.h>

Inheritance diagram for dyno::CollisionDetectionBroadPhase< TDataType >:
Collaboration diagram for dyno::CollisionDetectionBroadPhase< TDataType >:

Public Types

typedef TDataType::Real Real
 
typedef TDataType::Coord Coord
 
typedef TDataType::Matrix Matrix
 
- Public Types inherited from dyno::OBase
typedef std::vector< FBase * > FieldVector
 
typedef std::map< FieldID, FBase * > FieldMap
 

Public Member Functions

 CollisionDetectionBroadPhase ()
 
 ~CollisionDetectionBroadPhase () override
 
 DECLARE_ENUM (EStructure, BVH=0, Octree=1)
 
 DEF_ENUM (EStructure, AccelerationStructure, EStructure::BVH, "Acceleration structure")
 
 DEF_VAR (Real, GridSizeLimit, 0.005, "Limit the smallest grid size")
 
 DEF_VAR (bool, SelfCollision, false, "")
 
 DEF_ARRAY_IN (AABB, Source, DeviceType::GPU, "")
 
 DEF_ARRAY_IN (AABB, Target, DeviceType::GPU, "")
 
 DEF_ARRAYLIST_OUT (int, ContactList, DeviceType::GPU, "Contact pairs")
 
 CollisionDetectionBroadPhase ()
 
virtual ~CollisionDetectionBroadPhase ()
 
 DEF_ARRAY_IN (AlignedBox3D, BoundingBox, DeviceType::GPU, "")
 
 DEF_ARRAY_IN (uint32_t, CollisionMask, DeviceType::GPU, "")
 
 DEF_ARRAY_IN (uint32_t, ShapeType, DeviceType::GPU, "")
 
 DEF_ARRAY_OUT (Vec2u, Contacts, DeviceType::GPU, "")
 
- Public Member Functions inherited from dyno::ComputeModule
 ComputeModule ()
 
 ~ComputeModule () override
 
std::string getModuleType () override
 
- Public Member Functions inherited from dyno::Module
 Module (std::string name="default")
 
 ~Module (void) override
 
bool initialize ()
 
void update ()
 
void setName (std::string name)
 
std::string getName () override
 
virtual void setParentNode (Node *node)
 Set the parent node.
 
NodegetParentNode ()
 
SceneGraphgetSceneGraph ()
 
bool isInitialized ()
 
bool attachField (FBase *field, std::string name, std::string desc, bool autoDestroy=true) override
 Attach a field to Base.
 
bool isInputComplete ()
 Check the completeness of input fields.
 
bool isOutputCompete ()
 
 DEF_VAR (bool, ForceUpdate, false, "")
 
void setUpdateAlways (bool b)
 Set the update strategy for the module.
 
- Public Member Functions inherited from dyno::OBase
 OBase ()
 
 ~OBase () override
 
virtual std::string caption ()
 Return the caption.
 
virtual bool captionVisible ()
 Whether to hide the caption in the GUI.
 
virtual std::string description ()
 Return a description for the node or module, override this function to support user-defined description.
 
bool addField (FBase *data)
 Add a field to Base FieldID will be set to the name of Field by default.
 
bool addField (FieldID name, FBase *data)
 Add a field to Base.
 
bool addFieldAlias (FieldID name, FBase *data)
 
bool addFieldAlias (FieldID name, FBase *data, FieldMap &fieldAlias)
 
bool findField (FBase *data)
 Find a field by its pointer.
 
bool findFieldAlias (const FieldID name)
 Find a field by its name.
 
bool findFieldAlias (const FieldID name, FieldMap &fieldAlias)
 Find a field in fieldAlias by its name This function is typically called by other functions.
 
bool removeField (FBase *data)
 Remove a field by its pointer.
 
bool removeFieldAlias (const FieldID name)
 Remove a field by its name.
 
bool removeFieldAlias (const FieldID name, FieldMap &fieldAlias)
 
FBasegetField (const FieldID name)
 Return a field by its name.
 
std::vector< FBase * > & getAllFields ()
 
template<typename T>
TgetField (FieldID name)
 
bool isAllFieldsReady ()
 Check the completeness of all required fields.
 
std::vector< FieldIDgetFieldAlias (FBase *data)
 
int getFieldAliasCount (FBase *data)
 
void setBlockCoord (float x, float y)
 
float bx ()
 
float by ()
 
bool findInputField (FBase *field)
 
bool addInputField (FBase *field)
 
bool removeInputField (FBase *field)
 
std::vector< FBase * > & getInputFields ()
 
bool findOutputField (FBase *field)
 
bool addOutputField (FBase *field)
 
bool addToOutput (FBase *field)
 
bool removeOutputField (FBase *field)
 
bool removeFromOutput (FBase *field)
 
std::vector< FBase * > & getOutputFields ()
 
bool findParameter (FBase *field)
 
bool addParameter (FBase *field)
 
bool removeParameter (FBase *field)
 
std::vector< FBase * > & getParameters ()
 
- Public Member Functions inherited from dyno::Object
 Object ()
 
virtual ~Object ()
 
ObjectId objectId ()
 

Public Attributes

float mGridSizeLimit
 

Protected Member Functions

void compute () override
 
void compute () override
 
- Protected Member Functions inherited from dyno::Module
virtual bool initializeImpl ()
 
virtual void preprocess ()
 
virtual void postprocess ()
 
virtual bool validateInputs ()
 
virtual bool validateOutputs ()
 
virtual bool requireUpdate ()
 
virtual void updateStarted ()
 Two functions called at the beginning and end of update() used for debug.
 
virtual void updateEnded ()
 

Private Member Functions

void doCollisionWithSparseOctree ()
 
void doCollisionWithLinearBVH ()
 

Private Attributes

Reduction< Realm_reduce_real
 
Reduction< Coordm_reduce_coord
 
DArray< RealmH
 
DArray< CoordmV0
 
DArray< CoordmV1
 
DArray< uintmCounter
 
DArray< uintmNewCounter
 
DArray< int > mIds
 
DArray< PKeymKeys
 
LinearBVH< TDataType > bvh
 
std::shared_ptr< VkReduce< int > > vkr
 
std::shared_ptr< VkScan< int > > vks
 
DArray< int > counter
 
DArray< int > startIndex
 

Additional Inherited Members

- Static Public Member Functions inherited from dyno::Object
static bool registerClass (ClassInfo *ci)
 
static ObjectcreateObject (std::string name)
 
static std::map< std::string, ClassInfo * > * getClassMap ()
 
static ObjectId baseId ()
 Base Id.
 
- Protected Attributes inherited from dyno::OBase
std::vector< FBase * > fields_input
 
std::vector< FBase * > fields_output
 
std::vector< FBase * > fields_param
 

Detailed Description

template<typename TDataType>
class dyno::CollisionDetectionBroadPhase< TDataType >

Definition at line 16 of file CollisionDetectionBroadPhase.h.

Member Typedef Documentation

◆ Coord

template<typename TDataType>
typedef TDataType::Coord dyno::CollisionDetectionBroadPhase< TDataType >::Coord

Definition at line 20 of file CollisionDetectionBroadPhase.h.

◆ Matrix

template<typename TDataType>
typedef TDataType::Matrix dyno::CollisionDetectionBroadPhase< TDataType >::Matrix

Definition at line 21 of file CollisionDetectionBroadPhase.h.

◆ Real

template<typename TDataType>
typedef TDataType::Real dyno::CollisionDetectionBroadPhase< TDataType >::Real

Definition at line 19 of file CollisionDetectionBroadPhase.h.

Constructor & Destructor Documentation

◆ CollisionDetectionBroadPhase() [1/2]

template<typename TDataType>
dyno::CollisionDetectionBroadPhase< TDataType >::CollisionDetectionBroadPhase ( )

Definition at line 10 of file CollisionDetectionBroadPhase.cpp.

Here is the call graph for this function:

◆ ~CollisionDetectionBroadPhase() [1/2]

template<typename TDataType>
dyno::CollisionDetectionBroadPhase< TDataType >::~CollisionDetectionBroadPhase ( )
override

Definition at line 40 of file CollisionDetectionBroadPhase.cpp.

◆ CollisionDetectionBroadPhase() [2/2]

template<typename TDataType>
dyno::CollisionDetectionBroadPhase< TDataType >::CollisionDetectionBroadPhase ( )

◆ ~CollisionDetectionBroadPhase() [2/2]

template<typename TDataType>
virtual dyno::CollisionDetectionBroadPhase< TDataType >::~CollisionDetectionBroadPhase ( )
virtual

Member Function Documentation

◆ compute() [1/2]

template<typename TDataType>
void dyno::CollisionDetectionBroadPhase< TDataType >::compute ( )
overrideprotectedvirtual

Implements dyno::ComputeModule.

Definition at line 44 of file CollisionDetectionBroadPhase.cpp.

Here is the call graph for this function:

◆ compute() [2/2]

template<typename TDataType>
void dyno::CollisionDetectionBroadPhase< TDataType >::compute ( )
overrideprotectedvirtual

Implements dyno::ComputeModule.

◆ DECLARE_ENUM()

template<typename TDataType>
dyno::CollisionDetectionBroadPhase< TDataType >::DECLARE_ENUM ( EStructure ,
BVH = 0,
Octree = 1 )

◆ DEF_ARRAY_IN() [1/5]

template<typename TDataType>
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ARRAY_IN ( AABB ,
Source ,
DeviceType::GPU ,
""  )

◆ DEF_ARRAY_IN() [2/5]

template<typename TDataType>
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ARRAY_IN ( AABB ,
Target ,
DeviceType::GPU ,
""  )

◆ DEF_ARRAY_IN() [3/5]

template<typename TDataType>
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ARRAY_IN ( AlignedBox3D ,
BoundingBox ,
DeviceType::GPU ,
""  )

◆ DEF_ARRAY_IN() [4/5]

template<typename TDataType>
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ARRAY_IN ( uint32_t ,
CollisionMask ,
DeviceType::GPU ,
""  )

◆ DEF_ARRAY_IN() [5/5]

template<typename TDataType>
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ARRAY_IN ( uint32_t ,
ShapeType ,
DeviceType::GPU ,
""  )

◆ DEF_ARRAY_OUT()

template<typename TDataType>
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ARRAY_OUT ( Vec2u ,
Contacts ,
DeviceType::GPU ,
""  )

◆ DEF_ARRAYLIST_OUT()

template<typename TDataType>
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ARRAYLIST_OUT ( int ,
ContactList ,
DeviceType::GPU ,
"Contact pairs"  )

◆ DEF_ENUM()

template<typename TDataType>
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_ENUM ( EStructure ,
AccelerationStructure ,
EStructure::BVH ,
"Acceleration structure"  )

◆ DEF_VAR() [1/2]

template<typename TDataType>
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_VAR ( bool ,
SelfCollision ,
false ,
""  )

◆ DEF_VAR() [2/2]

template<typename TDataType>
dyno::CollisionDetectionBroadPhase< TDataType >::DEF_VAR ( Real ,
GridSizeLimit ,
0. 005,
"Limit the smallest grid size"  )

◆ doCollisionWithLinearBVH()

template<typename TDataType>
void dyno::CollisionDetectionBroadPhase< TDataType >::doCollisionWithLinearBVH ( )
private

◆ doCollisionWithSparseOctree()

template<typename TDataType>
void dyno::CollisionDetectionBroadPhase< TDataType >::doCollisionWithSparseOctree ( )
private

Member Data Documentation

◆ bvh

template<typename TDataType>
LinearBVH<TDataType> dyno::CollisionDetectionBroadPhase< TDataType >::bvh
private

Definition at line 65 of file CollisionDetectionBroadPhase.h.

◆ counter

template<typename TDataType>
DArray<int> dyno::CollisionDetectionBroadPhase< TDataType >::counter
private

Definition at line 47 of file CollisionDetectionBroadPhase.h.

◆ m_reduce_coord

template<typename TDataType>
Reduction<Coord> dyno::CollisionDetectionBroadPhase< TDataType >::m_reduce_coord
private

Definition at line 52 of file CollisionDetectionBroadPhase.h.

◆ m_reduce_real

template<typename TDataType>
Reduction<Real> dyno::CollisionDetectionBroadPhase< TDataType >::m_reduce_real
private

Definition at line 51 of file CollisionDetectionBroadPhase.h.

◆ mCounter

template<typename TDataType>
DArray<uint> dyno::CollisionDetectionBroadPhase< TDataType >::mCounter
private

Definition at line 59 of file CollisionDetectionBroadPhase.h.

◆ mGridSizeLimit

template<typename TDataType>
float dyno::CollisionDetectionBroadPhase< TDataType >::mGridSizeLimit

Definition at line 23 of file CollisionDetectionBroadPhase.h.

◆ mH

template<typename TDataType>
DArray<Real> dyno::CollisionDetectionBroadPhase< TDataType >::mH
private

Definition at line 54 of file CollisionDetectionBroadPhase.h.

◆ mIds

template<typename TDataType>
DArray<int> dyno::CollisionDetectionBroadPhase< TDataType >::mIds
private

Definition at line 62 of file CollisionDetectionBroadPhase.h.

◆ mKeys

template<typename TDataType>
DArray<PKey> dyno::CollisionDetectionBroadPhase< TDataType >::mKeys
private

Definition at line 63 of file CollisionDetectionBroadPhase.h.

◆ mNewCounter

template<typename TDataType>
DArray<uint> dyno::CollisionDetectionBroadPhase< TDataType >::mNewCounter
private

Definition at line 60 of file CollisionDetectionBroadPhase.h.

◆ mV0

template<typename TDataType>
DArray<Coord> dyno::CollisionDetectionBroadPhase< TDataType >::mV0
private

Definition at line 56 of file CollisionDetectionBroadPhase.h.

◆ mV1

template<typename TDataType>
DArray<Coord> dyno::CollisionDetectionBroadPhase< TDataType >::mV1
private

Definition at line 57 of file CollisionDetectionBroadPhase.h.

◆ startIndex

template<typename TDataType>
DArray<int> dyno::CollisionDetectionBroadPhase< TDataType >::startIndex
private

Definition at line 48 of file CollisionDetectionBroadPhase.h.

◆ vkr

template<typename TDataType>
std::shared_ptr<VkReduce<int> > dyno::CollisionDetectionBroadPhase< TDataType >::vkr
private

Definition at line 43 of file CollisionDetectionBroadPhase.h.

◆ vks

template<typename TDataType>
std::shared_ptr<VkScan<int> > dyno::CollisionDetectionBroadPhase< TDataType >::vks
private

Definition at line 45 of file CollisionDetectionBroadPhase.h.


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