cd_rigidCLL.cpp
Go to the documentation of this file.
1 
10 #if _HAVE_RIGIDCLL
11 
12 #include "cd_rigidCLL.h"
13 
14 #include <RigidCLL.h>
15 
16 extern "C" {
17 #include "error.h"
18 }
19 
20 
21 TrigidCLL *InitRigidCLL()
22 {
23  RigidCLL *r;
24 
25  r=new RigidCLL();
26 
27  return((TrigidCLL *)r);
28 }
29 
30 unsigned int StartRigidCLLObject(TrigidCLL *r)
31 {
32  RigidCLL *ro;
33 
34  ro=(RigidCLL *)r;
35 
36  return(ro->NewRigid());
37 }
38 
39 void AddFixedSphere2RigidCLL(unsigned int id,double *center,double rad,TrigidCLL *r)
40 {
41  RigidCLL *ro;
42 
43  ro=(RigidCLL *)r;
44 
45  ro->AddFixedAtom(id,center,rad);
46 }
47 
48 void AddMobileSphere2RigidCLL(unsigned int id,double *center,double rad,TrigidCLL *r)
49 {
50  RigidCLL *ro;
51 
52  ro=(RigidCLL *)r;
53 
54  ro->AddAtom(id,center,rad);
55 }
56 
57 void CloseRigidCLLObject(TrigidCLL *r)
58 {
59  RigidCLL *ro;
60 
61  ro=(RigidCLL *)r;
62 
63  ro->EndRigid();
64 }
65 
66 void ActivateCollisionsRigidCLL(unsigned int nr1,unsigned int nr2,TrigidCLL *r)
67 {
68  RigidCLL *ro;
69 
70  ro=(RigidCLL *)r;
71 
72  ro->ActivateInteraction(nr1,nr2);
73 }
74 
75 void DeactivateCollisionsRigidCLL(unsigned int nr1,unsigned int nr2,TrigidCLL *r)
76 {
77  RigidCLL *ro;
78 
79  ro=(RigidCLL *)r;
80 
81  ro->DeactivateInteraction(nr1,nr2);
82 }
83 
84 boolean MoveAndCheckRigidCLL(THTransform *t,TrigidCLL *r)
85 {
86  RigidCLL *ro;
87 
88  ro=(RigidCLL *)r;
89 
90  if (ro->StericClash((RigidTransform*)t))
91  return(TRUE);
92  else
93  return(FALSE);
94 }
95 
96 void DeleteRigidCLL(TrigidCLL *r)
97 {
98  RigidCLL *ro;
99 
100  ro=(RigidCLL *)r;
101 
102  delete ro;
103 }
104 
105 #endif
#define FALSE
FALSE.
Definition: boolean.h:30
A homgeneous transform in R^3.
Headers of the C interface for the rigidCLL collision detection engine.
#define TRUE
TRUE.
Definition: boolean.h:21
Error and warning functions.