diff --git a/examples/3instruments.scn b/examples/3instruments.scn
index e1030a6e9..64ebad9b1 100644
--- a/examples/3instruments.scn
+++ b/examples/3instruments.scn
@@ -65,7 +65,7 @@
ymin='0' ymax='0'
zmin='1' zmax='1'
/>
-
+
diff --git a/examples/SingleBeamDeployment.scn b/examples/SingleBeamDeployment.scn
index 8feca7e10..8bba658d2 100644
--- a/examples/SingleBeamDeployment.scn
+++ b/examples/SingleBeamDeployment.scn
@@ -31,12 +31,12 @@
-
+
diff --git a/examples/SingleBeamDeploymentCollision.scn b/examples/SingleBeamDeploymentCollision.scn
index 6c6cd5f53..2947be69d 100644
--- a/examples/SingleBeamDeploymentCollision.scn
+++ b/examples/SingleBeamDeploymentCollision.scn
@@ -49,12 +49,12 @@
-
+
diff --git a/examples/python3/SingleBeamDeployment.py b/examples/python3/SingleBeamDeployment.py
index df8059a49..225258504 100644
--- a/examples/python3/SingleBeamDeployment.py
+++ b/examples/python3/SingleBeamDeployment.py
@@ -37,11 +37,11 @@ def createScene(rootNode):
nx=61, ny=1, nz=1,
xmax=0.0, xmin=0.0, ymin=0, ymax=0, zmax=0, zmin=0,
p0=[0,0,0])
- BeamMechanics.addObject('MechanicalObject', showIndices=False, name='DOFs Container', template='Rigid3d', ry=-90)
+ BeamMechanics.addObject('MechanicalObject', showIndices=False, name='DOFs Container', template='Rigid3d')
BeamMechanics.addObject('WireBeamInterpolation', name='BeamInterpolation', WireRestShape='@../EdgeTopology/BeamRestShape', printLog=False)
BeamMechanics.addObject('AdaptiveBeamForceFieldAndMass', name='BeamForceField', massDensity=0.00000155, interpolation='@BeamInterpolation')
BeamMechanics.addObject('InterventionalRadiologyController', name='DeployController', template='Rigid3d', instruments='BeamInterpolation',
- topology="@MeshLines", startingPos=[0, 0, 0, 0, 0, 0, 1], xtip=[0], printLog=True,
+ topology="@MeshLines", startingPos=[0, 0, 0, 0, -0.7071068, 0, 0.7071068], xtip=[0], printLog=True,
rotationInstrument=[0], step=0.5, speed=0.5,
listening=True, controlledInstrument=0)
BeamMechanics.addObject('FixedProjectiveConstraint', indices=0, name='FixedConstraint')
diff --git a/examples/python3/SingleBeamDeploymentCollision.py b/examples/python3/SingleBeamDeploymentCollision.py
index f56869dde..5559855df 100644
--- a/examples/python3/SingleBeamDeploymentCollision.py
+++ b/examples/python3/SingleBeamDeploymentCollision.py
@@ -45,11 +45,11 @@ def createScene(rootNode):
nx=61, ny=1, nz=1,
xmax=0.0, xmin=0.0, ymin=0, ymax=0, zmax=0, zmin=0,
p0=[0,0,0])
- BeamMechanics.addObject('MechanicalObject', showIndices=False, name='DOFs', template='Rigid3d', ry=-90)
+ BeamMechanics.addObject('MechanicalObject', showIndices=False, name='DOFs', template='Rigid3d')
BeamMechanics.addObject('WireBeamInterpolation', name='BeamInterpolation', WireRestShape='@../EdgeTopology/BeamRestShape', printLog=False)
BeamMechanics.addObject('AdaptiveBeamForceFieldAndMass', name='BeamForceField', massDensity=0.00000155, interpolation='@BeamInterpolation')
BeamMechanics.addObject('InterventionalRadiologyController', name='DeployController', template='Rigid3d', instruments='BeamInterpolation',
- topology="@MeshLines", startingPos=[0, 0, 0, 0, 0, 0, 1], xtip=[0], printLog=True,
+ topology="@MeshLines", startingPos=[0, 0, 0, 0, -0.7071068, 0, 0.7071068], xtip=[0], printLog=True,
rotationInstrument=[0], step=5., speed=5.,
listening=True, controlledInstrument=0)
BeamMechanics.addObject('LinearSolverConstraintCorrection', wire_optimization='true', printLog=False)
diff --git a/regression/references/3instruments.scn.reference_0_DOFs_mstate.txt.gz b/regression/references/3instruments.scn.reference_0_DOFs_mstate.txt.gz
index 433d55d98..32ba123e9 100644
Binary files a/regression/references/3instruments.scn.reference_0_DOFs_mstate.txt.gz and b/regression/references/3instruments.scn.reference_0_DOFs_mstate.txt.gz differ
diff --git a/regression/references/3instruments.scn.reference_1_Quads_mstate.txt.gz b/regression/references/3instruments.scn.reference_1_Quads_mstate.txt.gz
index 7e98af92b..3997af521 100644
Binary files a/regression/references/3instruments.scn.reference_1_Quads_mstate.txt.gz and b/regression/references/3instruments.scn.reference_1_Quads_mstate.txt.gz differ
diff --git a/regression/references/3instruments.scn.reference_2_Quads_mstate.txt.gz b/regression/references/3instruments.scn.reference_2_Quads_mstate.txt.gz
index 85b718bb5..d0f05157e 100644
Binary files a/regression/references/3instruments.scn.reference_2_Quads_mstate.txt.gz and b/regression/references/3instruments.scn.reference_2_Quads_mstate.txt.gz differ
diff --git a/regression/references/3instruments.scn.reference_3_Quads_mstate.txt.gz b/regression/references/3instruments.scn.reference_3_Quads_mstate.txt.gz
index 19a2760ea..8326ab641 100644
Binary files a/regression/references/3instruments.scn.reference_3_Quads_mstate.txt.gz and b/regression/references/3instruments.scn.reference_3_Quads_mstate.txt.gz differ
diff --git a/regression/references/3instruments_collis.scn.reference_0_DOFs_mstate.txt.gz b/regression/references/3instruments_collis.scn.reference_0_DOFs_mstate.txt.gz
index 4d62c85c0..a5ef2c0fc 100644
Binary files a/regression/references/3instruments_collis.scn.reference_0_DOFs_mstate.txt.gz and b/regression/references/3instruments_collis.scn.reference_0_DOFs_mstate.txt.gz differ
diff --git a/regression/references/3instruments_collis.scn.reference_1_CollisionDOFs_mstate.txt.gz b/regression/references/3instruments_collis.scn.reference_1_CollisionDOFs_mstate.txt.gz
index d90e74d24..b59f3bce2 100644
Binary files a/regression/references/3instruments_collis.scn.reference_1_CollisionDOFs_mstate.txt.gz and b/regression/references/3instruments_collis.scn.reference_1_CollisionDOFs_mstate.txt.gz differ
diff --git a/regression/references/SingleBeamDeployment.py.reference_0_DOFs Container_mstate.txt.gz b/regression/references/SingleBeamDeployment.py.reference_0_DOFs Container_mstate.txt.gz
index 619cd91d1..7472da98b 100644
Binary files a/regression/references/SingleBeamDeployment.py.reference_0_DOFs Container_mstate.txt.gz and b/regression/references/SingleBeamDeployment.py.reference_0_DOFs Container_mstate.txt.gz differ
diff --git a/regression/references/SingleBeamDeployment.scn.reference_0_DOFs Container_mstate.txt.gz b/regression/references/SingleBeamDeployment.scn.reference_0_DOFs Container_mstate.txt.gz
index 547f03bf1..5a6e54154 100644
Binary files a/regression/references/SingleBeamDeployment.scn.reference_0_DOFs Container_mstate.txt.gz and b/regression/references/SingleBeamDeployment.scn.reference_0_DOFs Container_mstate.txt.gz differ
diff --git a/regression/references/SingleBeamDeploymentCollision.py.reference_0_DOFs_mstate.txt.gz b/regression/references/SingleBeamDeploymentCollision.py.reference_0_DOFs_mstate.txt.gz
index 298ad728f..5e77bf3bc 100644
Binary files a/regression/references/SingleBeamDeploymentCollision.py.reference_0_DOFs_mstate.txt.gz and b/regression/references/SingleBeamDeploymentCollision.py.reference_0_DOFs_mstate.txt.gz differ
diff --git a/regression/references/SingleBeamDeploymentCollision.py.reference_1_CollisionDOFs_mstate.txt.gz b/regression/references/SingleBeamDeploymentCollision.py.reference_1_CollisionDOFs_mstate.txt.gz
index ec5a97a49..52b2e0c0d 100644
Binary files a/regression/references/SingleBeamDeploymentCollision.py.reference_1_CollisionDOFs_mstate.txt.gz and b/regression/references/SingleBeamDeploymentCollision.py.reference_1_CollisionDOFs_mstate.txt.gz differ
diff --git a/regression/references/SingleBeamDeploymentCollision.scn.reference_0_DOFs Container_mstate.txt.gz b/regression/references/SingleBeamDeploymentCollision.scn.reference_0_DOFs Container_mstate.txt.gz
index 1c27efad9..18d15254b 100644
Binary files a/regression/references/SingleBeamDeploymentCollision.scn.reference_0_DOFs Container_mstate.txt.gz and b/regression/references/SingleBeamDeploymentCollision.scn.reference_0_DOFs Container_mstate.txt.gz differ
diff --git a/regression/references/SingleBeamDeploymentCollision.scn.reference_1_CollisionDOFs_mstate.txt.gz b/regression/references/SingleBeamDeploymentCollision.scn.reference_1_CollisionDOFs_mstate.txt.gz
index 581b69d59..e44253659 100644
Binary files a/regression/references/SingleBeamDeploymentCollision.scn.reference_1_CollisionDOFs_mstate.txt.gz and b/regression/references/SingleBeamDeploymentCollision.scn.reference_1_CollisionDOFs_mstate.txt.gz differ
diff --git a/src/BeamAdapter/component/controller/InterventionalRadiologyController.inl b/src/BeamAdapter/component/controller/InterventionalRadiologyController.inl
index f50fc6e5f..5a21797c4 100644
--- a/src/BeamAdapter/component/controller/InterventionalRadiologyController.inl
+++ b/src/BeamAdapter/component/controller/InterventionalRadiologyController.inl
@@ -283,8 +283,13 @@ void InterventionalRadiologyController::init()
}
WriteAccessor > x = *this->mState->write(sofa::core::vec_id::write_access::position);
+ WriteAccessor > xrest = *this->mState->write(sofa::core::vec_id::write_access::restPosition);
+ const auto& startPos = d_startingPos.getValue();
for(unsigned int i=0; i
void InterventionalRadiologyController::fixFirstNodesWithUntil(unsigned int firstSimulatedNode)
{
WriteAccessor > xMstate = *getMechanicalState()->write(sofa::core::vec_id::write_access::position);
+ WriteAccessor > xrestMstate = *getMechanicalState()->write(sofa::core::vec_id::write_access::restPosition);
WriteAccessor > vMstate = *getMechanicalState()->write(sofa::core::vec_id::write_access::velocity);
// set the position to startingPos for all the nodes that are not simulated
+ const auto& startPos = d_startingPos.getValue();
// and add a fixedConstraint
l_fixedConstraint->clearConstraints();
for(unsigned int i=0; iaddConstraint(i);
}