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); }