HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RBD_ColliderBFA.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  */
7 
8 #ifndef __RBD_ColliderBFA_h__
9 #define __RBD_ColliderBFA_h__
10 
11 #include "RBD_API.h"
12 #include "RBD_Object.h"
13 
14 #include <SIM/SIM_ColliderBFA.h>
15 #include <SIM/SIM_Isect.h>
16 
18 {
19 public:
20  /// Finds intersection of RBD objects. Fills the given queue with all
21  /// of the two way intersections.
22  void intersectRBDObjects(SIM_IsectPriorityQueue &queue,
23  RBD_Object *obj_a, RBD_Object *obj_b,
24  bool findany,
25  bool findearliest,
26  fpreal timetol,
27  const SIM_Time &starttime,
28  const SIM_Time &endtime,
29  SIM_ImpactApplyType impactapplytype,
30  int impactflags,
31  int child_a_id = -1,
32  int child_b_id = -1) const;
33 protected:
34  explicit RBD_ColliderBFA(const SIM_DataFactory *factory);
35  virtual ~RBD_ColliderBFA();
36 
37  virtual bool doCheckTangle() const
38  { return true; }
39  virtual BV_LeafIterator
40  *createLeafIt(const SIM_Object &object,
41  const SIM_Time &timestep,
42  bool startPosOnly) const;
43  virtual void convertLeafToPrim(const BV_LeafIterator &leafIt,
44  int leafId,
45  int &outPrimId, int &outEdgeId) const;
46  virtual fpreal getLeafRadius(const BV_LeafIterator &leafIt,
47  int leafId) const;
48 
49 private:
50  static const SIM_DopDescription *getDopDescription();
51 
55  "ThinPlate/ThinPlate Collider (Bridson)",
56  getDopDescription());
57 };
58 
59 #endif
60 
#define DECLARE_STANDARD_GETCASTTOTYPE()
Definition: SIM_DataUtils.h:45
virtual bool doCheckTangle() const
A single potential-collision event involving a pair of primitives.
#define RBD_API
Definition: RBD_API.h:10
virtual void convertLeafToPrim(const BV_LeafIterator &leafIt, int leafId, int &outPrimId, int &outEdgeId) const =0
#define DECLARE_DATAFACTORY(DataClass, SuperClass, Description, DopParms)
Definition: SIM_DataUtils.h:58
SIM_ImpactApplyType
Defines the possible affector types when doing collision detection.
Definition: SIM_Collider.h:56
double fpreal
Definition: SYS_Types.h:270
virtual fpreal getLeafRadius(const BV_LeafIterator &leafIt, int leafId) const =0
virtual BV_LeafIterator * createLeafIt(const SIM_Object &object, const SIM_Time &timestep, bool startPosOnly) const =0