11from splib .core .node_wrapper import ReusableMethod
22from splib .core .utils import DEFAULT_VALUE
3- from splib .core .enum_types import ElementType
3+ from splib .core .enum_types import CollisionPrimitive
44
55
66
77@ReusableMethod
8- def addCollisionModels (node ,points = False , edges = False ,triangles = False , spheres = False ,tetrahedron = False ,selfCollision = DEFAULT_VALUE , proximity = DEFAULT_VALUE , group = DEFAULT_VALUE , contactStiffness = DEFAULT_VALUE , contactFriction = DEFAULT_VALUE ,spheresRadius = DEFAULT_VALUE ,** kwargs ):
9- if (points ):
10- node .addObject ("PointCollisionModel" ,name = "PointCollision" , selfCollision = selfCollision , proximity = proximity , contactStiffness = contactStiffness , contactFriction = contactFriction , group = group , ** kwargs )
11- if (edges ):
12- node .addObject ("LineCollisionModel" ,name = "EdgeCollision" , selfCollision = selfCollision , proximity = proximity , contactStiffness = contactStiffness , contactFriction = contactFriction , group = group ,** kwargs )
13- if (triangles ):
14- node .addObject ("TriangleCollisionModel" ,name = "TriangleCollision" , selfCollision = selfCollision , proximity = proximity , contactStiffness = contactStiffness , contactFriction = contactFriction , group = group ,** kwargs )
15- if (spheres ):
16- node .addObject ("SphereCollisionModel" ,name = "SphereCollision" , selfCollision = selfCollision , proximity = proximity , contactStiffness = contactStiffness , contactFriction = contactFriction , group = group , radius = spheresRadius , ** kwargs )
17- if (tetrahedron ):
18- node .addObject ("TetrahedronCollisionModel" ,name = "TetraCollision" , selfCollision = selfCollision , proximity = proximity , contactStiffness = contactStiffness , contactFriction = contactFriction , group = group ,** kwargs )
8+ def addCollisionModels (node , primitive : CollisionPrimitive , topology = DEFAULT_VALUE , selfCollision = DEFAULT_VALUE , proximity = DEFAULT_VALUE , group = DEFAULT_VALUE , contactStiffness = DEFAULT_VALUE , contactFriction = DEFAULT_VALUE ,spheresRadius = DEFAULT_VALUE ,** kwargs ):
9+ match primitive :
10+ case CollisionPrimitive .POINTS :
11+ node .addObject ("PointCollisionModel" ,name = "PointCollision" , topology = topology , selfCollision = selfCollision , proximity = proximity , contactStiffness = contactStiffness , contactFriction = contactFriction , group = group , ** kwargs )
12+ return
13+ case CollisionPrimitive .LINES :
14+ node .addObject ("LineCollisionModel" ,name = "EdgeCollision" , topology = topology , selfCollision = selfCollision , proximity = proximity , contactStiffness = contactStiffness , contactFriction = contactFriction , group = group ,** kwargs )
15+ return
16+ case CollisionPrimitive .TRIANGLES :
17+ node .addObject ("TriangleCollisionModel" ,name = "TriangleCollision" , topology = topology , selfCollision = selfCollision , proximity = proximity , contactStiffness = contactStiffness , contactFriction = contactFriction , group = group ,** kwargs )
18+ return
19+ case CollisionPrimitive .SPHERES :
20+ node .addObject ("SphereCollisionModel" ,name = "SphereCollision" , topology = topology , selfCollision = selfCollision , proximity = proximity , contactStiffness = contactStiffness , contactFriction = contactFriction , group = group , radius = spheresRadius , ** kwargs )
21+ return
22+ case _:
23+ return
24+
25+ #Cube and tetra are missing.
26+
27+
0 commit comments