Skip to content

Commit 53ccf61

Browse files
committed
WIP
1 parent c22121f commit 53ccf61

File tree

2 files changed

+68
-37
lines changed

2 files changed

+68
-37
lines changed

examples/test_prefab_meeting/entity.py

Lines changed: 68 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -37,49 +37,84 @@ def to_dict(self):
3737
def addBidule(self):
3838
return self.addChild("Bidule")
3939

40-
class Entity(Sofa.Core.Node):
40+
41+
class Entity(Sofa.Core.Prefab):
42+
def __init__(self, **kwargs):
43+
self.addChild(VisualModel(**kwargs), name="visual")
44+
self.addChild(CollisionModel(**kwargs), name="visual")
45+
46+
def addConstitutiveLaw(self):
47+
pass
48+
49+
def addSolver(self):
50+
pass
51+
52+
DEFAULT_VALUE = object()
53+
54+
def addSolver(node : Sofa.Core.Node, template=DEFAULT_VALUE, numiterations=DEFAULT_VALUE, **kwargs):
55+
node.addObject("ODESolver", name = "integrationscheme",numiterations = numiterations, **kwargs)
56+
node.addObject("LinearSolver", name = "numericalsolver", template=DEFAULT_VALUE, **kwargs)
57+
58+
#@dataclasses.dataclass
59+
#class Solver(object):
60+
# integrationscheme : str
61+
# numericalsolver : str
62+
63+
@dataclasses.dataclass
64+
class SolverParameters(object):
65+
numiteration : int | object = DEFAULT_VALUE
66+
template: str | object = DEFAULT_VALUE
67+
68+
kwargs : dict = {"intergrato"}
69+
70+
def to_dict(self):
71+
return self.asdict() | self.kwargs
72+
73+
class Entity(Sofa.Core.Prefab):
4174
# A simulated object
4275
visual : VisualModel
4376
collision : CollisionModel
4477

45-
@staticmethod
46-
def addSolver(self):
47-
pass
78+
parameters : EntityParameters
4879

49-
@dataclasses.dataclass
50-
class Parameters(object):
51-
addSolver : Callable = addBidule
52-
addConstitutiveLaw : Callable = addBidule
53-
addBoundaryCondition : Callable = addBidule
80+
addSolver : PrefabMethod
5481

55-
mechanical : MechanicalObject.Parameters = MechanicalObject.Parameters()
56-
collision : CollisionModel.Parameters = CollisionModel.Parameters()
57-
visual : VisualModel.Parameters = VisualModel.Parameters()
82+
def __init__(self, params):
83+
self.params = params
84+
85+
self.addChild(VisualModel(params.visual), name="visual")
5886

59-
name = "Entity"
87+
self.addSolver()
88+
self.addCollisionModel()
6089

61-
def to_dict(self):
62-
return dataclasses.asdict(self)
90+
#@staticmethod
91+
#def addSolver(self):
92+
# pass
6393

64-
# Ici mettre un prefab simplfié.
65-
def __init__(self, **kwargs):
66-
print("CCOUou")
67-
params = kwargs.get("params", None) # type: Entity.Parameters
68-
Sofa.Core.Node.__init__(self, params.name)
94+
#def defaultAddSolver(self):
95+
# pass
6996

70-
print("ZUT ZUT ")
71-
72-
print("COUCOU")
73-
self.addObject("MechanicalObject", **params.mechanical.to_dict())
74-
print("COUCO S")
97+
@prefab.method
98+
def addCollisionModel(self):
99+
pass
100+
101+
@dataclasses.dataclass
102+
class EntityParameters(object):
103+
addSolver : Callable = addSolver
104+
setConstitutiveLaw # : Callable = addBidule
105+
setBoundaryCondition #: Callable = addBidule
106+
107+
addCollisionModel : CollisionModel
75108

76-
#if(params.visual != None):
77-
# self.addChild(VisualModel(params.visual),
78-
# name="visual")
109+
#mechanical : MechanicalObject.Parameters = MechanicalObject.Parameters()
110+
collision : CollisionModel.Parameters = CollisionModel.Parameters()
111+
visual : VisualModel.Parameters = VisualModel.Parameters()
112+
solver : SolverParameters = SolverParameters()
113+
114+
kwargs : dict = {}
115+
def to_dict(self):
116+
return dataclasses.asdict(self)
79117

80-
#if(params.collision != None):
81-
# self.addChild(CollisionModel(params.collision),
82-
# name="collision")
83118

84119
class Rigid(Entity):
85120
def __init__(self, **kwargs):
@@ -90,10 +125,8 @@ class Parameters(Entity.Parameters):
90125

91126
class Deformable(Entity):
92127
def __init__(self, **kwargs):
93-
print("ZUT")
94128
Entity.__init__(self, **kwargs)
95-
print("DEFORMABLE")
96-
129+
97130
class Parameters(Entity.Parameters):
98131
addConstitutiveLaw : Callable
99132
mass = 3.4
@@ -119,7 +152,7 @@ def Parameters(object):
119152
class Trunk(Sofa.Core.BasePrefab):
120153
body : Entity.Deformable
121154
cables : list [SoftRobots.Cable]
122-
155+
123156
def __init__(self, params):
124157
body = Entity.Deformable()
125158

examples/test_prefab_meeting/test-1.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ def createScene(root):
1919
params.name = "Deformable2"
2020
root.add(entity.Deformable, params=auto_load)
2121

22-
23-
2422
#def addCustomVisual(self, **kwargs):
2523
# Rigid.addVisualModel( mapping={"toto":"in"} )
2624

0 commit comments

Comments
 (0)