From bece92457c9dbc4f2d107ccd6d7d389349f40ee4 Mon Sep 17 00:00:00 2001 From: Alex Bilger Date: Fri, 6 Dec 2024 15:30:59 +0100 Subject: [PATCH] [Core] Constexprification of VecId (#5082) * constexpr * replace function calls by variable read * 0 * fix compilation * prevent template parameter shadowing * cast to uint8_t * deprecate static functions * replace deprecated functions --------- Co-authored-by: Hugo --- .../animationloop/ConstraintAnimationLoop.cpp | 36 +- .../animationloop/FreeMotionAnimationLoop.cpp | 20 +- .../intersection/LocalMinDistance.cpp | 4 +- .../MeshMinProximityIntersection.cpp | 24 +- .../collision/geometry/CylinderModel.inl | 6 +- .../collision/geometry/LineModel.inl | 22 +- .../component/collision/geometry/PointModel.h | 10 +- .../collision/geometry/PointModel.inl | 8 +- .../component/collision/geometry/RayModel.cpp | 6 +- .../collision/geometry/SphereModel.h | 14 +- .../collision/geometry/TetrahedronModel.cpp | 2 +- .../collision/geometry/TetrahedronModel.h | 24 +- .../collision/geometry/TriangleModel.h | 2 +- .../collision/geometry/TriangleModel.inl | 34 +- .../geometry/TriangleModelInRegularGrid.cpp | 4 +- .../geometry/TriangleOctreeModel.cpp | 6 +- .../contact/PenalityContactForceField.inl | 8 +- .../contact/StickContactConstraint.inl | 4 +- .../mapper/BarycentricContactMapper.h | 18 +- .../response/mapper/IdentityContactMapper.h | 10 +- .../response/mapper/RigidContactMapper.h | 10 +- .../response/mapper/SubsetContactMapper.inl | 8 +- .../GenericConstraintCorrection.cpp | 2 +- .../LinearSolverConstraintCorrection.inl | 26 +- .../PrecomputedConstraintCorrection.cpp | 12 +- .../PrecomputedConstraintCorrection.inl | 42 +-- .../UncoupledConstraintCorrection.inl | 32 +- .../model/BilateralLagrangianConstraint.cpp | 4 +- .../model/BilateralLagrangianConstraint.inl | 16 +- .../model/SlidingLagrangianConstraint.inl | 6 +- .../model/StopperLagrangianConstraint.inl | 2 +- .../model/UnilateralLagrangianConstraint.inl | 20 +- .../lagrangian/solver/LCPConstraintSolver.cpp | 6 +- .../AffineMovementProjectiveConstraint.inl | 2 +- .../projective/AttachProjectiveConstraint.cpp | 2 +- .../projective/AttachProjectiveConstraint.inl | 4 +- .../DirectionProjectiveConstraint.inl | 4 +- .../FixedPlaneProjectiveConstraint.inl | 4 +- .../projective/FixedProjectiveConstraint.inl | 4 +- .../FixedRotationProjectiveConstraint.inl | 2 +- .../FixedTranslationProjectiveConstraint.inl | 2 +- .../projective/LineProjectiveConstraint.inl | 2 +- .../LinearMovementProjectiveConstraint.inl | 2 +- ...tialLinearMovementProjectiveConstraint.inl | 2 +- .../PatchTestMovementProjectiveConstraint.inl | 2 +- .../projective/PlaneProjectiveConstraint.inl | 2 +- .../projective/PointProjectiveConstraint.inl | 2 +- ...itionBasedDynamicsProjectiveConstraint.inl | 2 +- ...ffineMovementProjectiveConstraint_test.cpp | 2 +- .../DirectionProjectiveConstraint_test.cpp | 6 +- .../tests/LineProjectiveConstraint_test.cpp | 4 +- .../tests/PlaneProjectiveConstraint_test.cpp | 4 +- .../tests/PointProjectiveConstraint_test.cpp | 4 +- .../controller/MechanicalStateController.cpp | 4 +- .../controller/MechanicalStateController.inl | 12 +- .../TetrahedronDiffusionFEMForceField.inl | 4 +- .../component/engine/analyze/AverageCoord.h | 2 +- .../component/engine/analyze/AverageCoord.inl | 2 +- .../engine/analyze/ClusteringEngine.inl | 2 +- .../component/engine/analyze/Distances.inl | 4 +- .../engine/analyze/ShapeMatching.inl | 2 +- .../engine/select/NearestPointROI.inl | 4 +- .../component/haptics/LCPForceFeedback.inl | 4 +- .../component/io/mesh/BlenderExporter.inl | 4 +- .../iterative/MatrixLinearSolver.inl | 2 +- .../PrecomputedWarpPreconditioner.inl | 12 +- .../linearsystem/MatrixProjectionMethod.inl | 2 +- .../tests/MatrixLinearSystem_test.cpp | 2 +- ...BarycentricMapperHexahedronSetTopology.inl | 6 +- .../mapping/linear/BarycentricMapping.inl | 12 +- .../linear/BarycentricMappingRigid.cpp | 2 +- .../linear/BarycentricMappingRigid.inl | 2 +- .../mapping/linear/BeamLinearMapping.inl | 8 +- .../mapping/linear/CenterOfMassMapping.inl | 2 +- .../linear/CenterOfMassMulti2Mapping.inl | 2 +- .../linear/CenterOfMassMultiMapping.inl | 2 +- .../linear/DeformableOnRigidFrameMapping.inl | 14 +- .../mapping/linear/LineSetSkinningMapping.inl | 14 +- .../mapping/linear/SkinningMapping.inl | 12 +- .../mapping/linear/SubsetMapping.inl | 10 +- .../mapping/nonlinear/RigidMapping.inl | 16 +- .../tests/SquareDistanceMapping_test.cpp | 12 +- .../mapping/testing/MappingTestCreation.h | 22 +- .../testing/Multi2MappingTestCreation.h | 16 +- .../testing/MultiMappingTestCreation.h | 20 +- .../src/sofa/component/mass/DiagonalMass.cpp | 4 +- .../src/sofa/component/mass/DiagonalMass.inl | 24 +- .../sofa/component/mass/MeshMatrixMass.inl | 34 +- .../src/sofa/component/mass/UniformMass.cpp | 10 +- .../src/sofa/component/mass/UniformMass.inl | 2 +- .../mechanicalload/ConstantForceField.inl | 2 +- .../mechanicalload/EdgePressureForceField.inl | 10 +- .../InteractionEllipsoidForceField.inl | 4 +- .../OscillatingTorsionPressureForceField.inl | 6 +- .../mechanicalload/PlaneForceField.inl | 2 +- .../mechanicalload/QuadPressureForceField.inl | 6 +- .../SurfacePressureForceField.inl | 2 +- .../TaitSurfacePressureForceField.inl | 12 +- .../TrianglePressureForceField.inl | 4 +- .../tests/SkeletalMotionConstraint_test.cpp | 4 +- .../backward/EulerImplicitSolver.cpp | 8 +- .../backward/NewmarkImplicitSolver.cpp | 6 +- .../odesolver/backward/StaticSolver.cpp | 4 +- .../backward/VariationalSymplecticSolver.cpp | 10 +- .../tests/EulerImplicitSolverDynamic_test.cpp | 2 +- .../EulerImplicitSolver_withDamping_test.cpp | 2 +- .../NewmarkImplicitSolverDynamic_test.cpp | 2 +- .../tests/SpringSolverDynamic_test.cpp | 2 +- ...alSymplecticExplicitSolverDynamic_test.cpp | 2 +- ...alSymplecticImplicitSolverDynamic_test.cpp | 2 +- .../forward/CentralDifferenceSolver.cpp | 12 +- .../odesolver/forward/DampVelocitySolver.cpp | 2 +- .../odesolver/forward/EulerExplicitSolver.cpp | 8 +- .../odesolver/forward/RungeKutta2Solver.cpp | 8 +- .../odesolver/forward/RungeKutta4Solver.cpp | 8 +- ...alDifferenceExplicitSolverDynamic_test.cpp | 2 +- .../tests/EulerExplicitSolverDynamic_test.cpp | 2 +- .../RungeKutta2ExplicitSolverDynamic_test.cpp | 2 +- .../RungeKutta4ExplicitSolverDynamic_test.cpp | 2 +- .../sofa/component/playback/CompareState.cpp | 2 +- .../fem/elastic/BeamFEMForceField.inl | 10 +- .../FastTetrahedralCorotationalForceField.inl | 6 +- .../fem/elastic/HexahedralFEMForceField.inl | 6 +- .../HexahedralFEMForceFieldAndMass.inl | 4 +- .../fem/elastic/HexahedronFEMForceField.inl | 6 +- .../HexahedronFEMForceFieldAndMass.inl | 2 +- .../fem/elastic/QuadBendingFEMForceField.inl | 4 +- .../TetrahedralCorotationalFEMForceField.inl | 14 +- .../fem/elastic/TetrahedronFEMForceField.inl | 12 +- .../fem/elastic/TriangleFEMForceField.inl | 4 +- .../TriangularAnisotropicFEMForceField.inl | 6 +- .../fem/elastic/TriangularFEMForceField.inl | 12 +- .../elastic/TriangularFEMForceFieldOptim.inl | 10 +- .../StandardTetrahedralFEMForceField.inl | 10 +- ...etrahedronHyperelasticityFEMForceField.inl | 8 +- ...exahedronCompositeFEMForceFieldAndMass.inl | 2 +- .../HexahedronCompositeFEMMapping.inl | 6 +- ...nUniformHexahedralFEMForceFieldAndMass.inl | 6 +- ...nUniformHexahedronFEMForceFieldAndMass.inl | 2 +- .../spring/AngularSpringForceField.inl | 2 +- .../spring/FastTriangularBendingSprings.inl | 2 +- .../spring/FrameSpringForceField.inl | 4 +- .../spring/GearSpringForceField.inl | 8 +- .../spring/JointSpringForceField.inl | 16 +- .../spring/MeshSpringForceField.inl | 6 +- .../PolynomialRestShapeSpringsForceField.inl | 6 +- .../spring/PolynomialSpringsForceField.inl | 4 +- .../spring/QuadBendingSprings.inl | 2 +- .../spring/QuadularBendingSprings.inl | 6 +- .../spring/RegularGridSpringForceField.inl | 4 +- .../spring/RestShapeSpringsForceField.inl | 6 +- .../spring/SpringForceField.inl | 8 +- .../spring/TriangleBendingSprings.inl | 2 +- .../spring/TriangularBendingSprings.inl | 6 +- ...TriangularBiquadraticSpringsForceField.inl | 8 +- .../TriangularQuadraticSpringsForceField.inl | 8 +- .../spring/VectorSpringForceField.inl | 10 +- .../Spring/tests/SpringForceField_test.cpp | 2 +- .../TetrahedralTensorMassForceField.inl | 10 +- .../TriangularTensorMassForceField.inl | 8 +- .../testing/ForceFieldTestCreation.h | 8 +- .../simutests/AffinePatch_test.cpp | 2 +- .../simutests/LinearElasticity_test.cpp | 4 +- .../component/statecontainer/MappedObject.h | 8 +- .../statecontainer/MechanicalObject.cpp | 4 +- .../statecontainer/MechanicalObject.h | 18 +- .../statecontainer/MechanicalObject.inl | 62 ++-- .../dynamic/EdgeSetGeometryAlgorithms.inl | 36 +- .../HexahedronSetGeometryAlgorithms.inl | 22 +- .../dynamic/PointSetGeometryAlgorithms.inl | 14 +- .../dynamic/QuadSetGeometryAlgorithms.inl | 24 +- .../TetrahedronSetGeometryAlgorithms.inl | 36 +- .../dynamic/TriangleSetGeometryAlgorithms.inl | 68 ++-- .../container/grid/SparseGridTopology.cpp | 2 +- .../mapping/Edge2QuadTopologicalMapping.cpp | 6 +- .../utility/TopologicalChangeProcessor.cpp | 4 +- .../sofa/component/visual/VisualModelImpl.cpp | 6 +- .../gl/component/rendering3d/DataDisplay.cpp | 4 +- .../rendering3d/OglCylinderModel.cpp | 4 +- .../src/sofa/gui/common/PickHandler.cpp | 4 +- .../performer/FixParticlePerformer.inl | 4 +- .../performer/InciseAlongPathPerformer.cpp | 2 +- .../performer/RemovePrimitivePerformer.inl | 4 +- .../performer/SuturePointPerformer.inl | 4 +- .../performer/TopologicalChangeManager.cpp | 2 +- .../Core/src/sofa/core/BaseMapping.h | 4 +- .../Core/src/sofa/core/ConstraintParams.cpp | 10 +- Sofa/framework/Core/src/sofa/core/Mapping.inl | 6 +- .../Core/src/sofa/core/MechanicalParams.cpp | 10 +- .../Core/src/sofa/core/Multi2Mapping.inl | 6 +- .../Core/src/sofa/core/MultiMapping.inl | 6 +- Sofa/framework/Core/src/sofa/core/State.h | 32 +- Sofa/framework/Core/src/sofa/core/State.inl | 4 +- Sofa/framework/Core/src/sofa/core/VecId.h | 329 +++++++++++++----- .../sofa/core/behavior/BaseMechanicalState.h | 6 +- .../src/sofa/core/behavior/ConstraintSolver.h | 4 +- .../Core/src/sofa/core/behavior/OdeSolver.h | 2 +- Sofa/framework/Core/src/sofa/core/config.h.in | 43 +++ .../src/sofa/core/visual/VisualParams.cpp | 4 +- .../Core/src/sofa/core/visual/VisualState.inl | 12 +- Sofa/framework/Core/test/VecId_test.cpp | 62 +++- .../src/sofa/simulation/AnimateVisitor.cpp | 12 +- .../sofa/simulation/DefaultAnimationLoop.cpp | 8 +- .../sofa/simulation/MechanicalOperations.cpp | 24 +- .../sofa/simulation/MechanicalOperations.h | 2 +- .../Core/src/sofa/simulation/SolveVisitor.cpp | 10 +- .../Core/src/sofa/simulation/SolveVisitor.h | 4 +- .../sofa/simulation/UpdateMappingVisitor.cpp | 4 +- .../MechanicalIntegrateConstraintVisitor.h | 6 +- .../MechanicalIntegrationVisitor.cpp | 10 +- .../MechanicalProjectJacobianMatrixVisitor.h | 4 +- ...hanicalProjectPositionAndVelocityVisitor.h | 6 +- .../MechanicalProjectPositionVisitor.h | 4 +- .../MechanicalProjectVelocityVisitor.h | 4 +- .../MechanicalPropagateOnlyPositionVisitor.h | 2 +- .../MechanicalSetPositionAndVelocityVisitor.h | 6 +- .../ArticulatedHierarchyBVHController.cpp | 10 +- .../ArticulatedHierarchyController.cpp | 4 +- .../ArticulatedSystemMapping.inl | 18 +- .../geometry/CapsuleModel.inl | 6 +- .../CollisionOBBCapsule/geometry/OBBModel.inl | 6 +- .../geometry/RigidCapsuleModel.inl | 6 +- .../gpu/cuda/CudaHexahedronTLEDForceField.cpp | 4 +- .../cuda/CudaTetrahedronTLEDForceField.cpp | 4 +- .../sofa/gpu/cuda/CudaVisualModel.inl | 6 +- .../collision/geometry/CudaPointModel.cpp | 4 +- .../contact/CudaPenalityContactForceField.inl | 4 +- ...daFixedTranslationProjectiveConstraint.cpp | 4 +- .../linear/CudaBarycentricMappingRigid.cpp | 2 +- .../component/mass/CudaDiagonalMass.inl | 2 +- .../component/mass/CudaUniformMass.inl | 8 +- .../elastic/CudaHexahedronFEMForceField.inl | 2 +- .../elastic/CudaTetrahedronFEMForceField.inl | 2 +- .../spring/CudaSpringForceField.inl | 6 +- .../statecontainer/CudaMechanicalObject.inl | 8 +- .../collision/DistanceGridCollisionModel.cpp | 4 +- .../collision/DistanceGridCollisionModel.h | 6 +- .../forcefield/DistanceGridForceField.inl | 6 +- .../CUDA/CudaTetrahedralVisualModel.inl | 4 +- 239 files changed, 1290 insertions(+), 1046 deletions(-) diff --git a/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/ConstraintAnimationLoop.cpp b/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/ConstraintAnimationLoop.cpp index b40e59dee91..ac27e748341 100644 --- a/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/ConstraintAnimationLoop.cpp +++ b/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/ConstraintAnimationLoop.cpp @@ -307,7 +307,7 @@ void ConstraintAnimationLoop::freeMotion(const core::ExecParams* params, simulat if(d_schemeCorrection.getValue()) { sofa::core::ConstraintParams cparams(*params); - sofa::core::MultiVecDerivId f = core::VecDerivId::externalForce(); + sofa::core::MultiVecDerivId f = core::vec_id::write_access::externalForce; for (auto cc : constraintCorrections) { @@ -319,7 +319,7 @@ void ConstraintAnimationLoop::freeMotion(const core::ExecParams* params, simulat { sofa::core::MechanicalParams mparams(*params); - sofa::core::MultiVecCoordId xfree = sofa::core::VecCoordId::freePosition(); + sofa::core::MultiVecCoordId xfree = sofa::core::vec_id::write_access::freePosition; mparams.x() = xfree; MechanicalProjectPositionVisitor(&mparams, 0, xfree ).execute(context); MechanicalPropagateOnlyPositionVisitor(&mparams, 0, xfree ).execute(context); @@ -331,7 +331,7 @@ void ConstraintAnimationLoop::freeMotion(const core::ExecParams* params, simulat ////////propagate acceleration ? ////// //this is done to set dx to zero in subgraph - core::MultiVecDerivId dx_id = core::VecDerivId::dx(); + core::MultiVecDerivId dx_id = core::vec_id::write_access::dx; MechanicalVOpVisitor(params, dx_id, core::ConstVecId::null(), core::ConstVecId::null(), 1.0 ).setMapped(true).execute(context); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -393,19 +393,19 @@ void ConstraintAnimationLoop::setConstraintEquations(const core::ExecParams* par void ConstraintAnimationLoop::writeAndAccumulateAndCountConstraintDirections(const core::ExecParams* params, simulation::Node *context, unsigned int &numConstraints) { core::ConstraintParams cparams = core::ConstraintParams(*params); - cparams.setX(core::ConstVecCoordId::freePosition()); - cparams.setV(core::ConstVecDerivId::freeVelocity()); + cparams.setX(core::vec_id::read_access::freePosition); + cparams.setV(core::vec_id::read_access::freeVelocity); // calling resetConstraint on LMConstraints and MechanicalStates MechanicalResetConstraintVisitor(&cparams).execute(context); // calling applyConstraint on each constraint - MechanicalSetConstraint(&cparams, core::MatrixDerivId::constraintJacobian(), numConstraints).execute(context); + MechanicalSetConstraint(&cparams, core::vec_id::write_access::constraintJacobian, numConstraints).execute(context); sofa::helper::AdvancedTimer::valSet("numConstraints", numConstraints); // calling accumulateConstraint on the mappings - MechanicalAccumulateConstraint2(&cparams, core::MatrixDerivId::constraintJacobian()).execute(context); + MechanicalAccumulateConstraint2(&cparams, core::vec_id::write_access::constraintJacobian).execute(context); getCP()->clear(numConstraints,this->d_tol.getValue()); } @@ -413,8 +413,8 @@ void ConstraintAnimationLoop::writeAndAccumulateAndCountConstraintDirections(con void ConstraintAnimationLoop::getIndividualConstraintViolations(const core::ExecParams* params, simulation::Node *context) { core::ConstraintParams cparams = core::ConstraintParams(*params); - cparams.setX(core::ConstVecCoordId::freePosition()); - cparams.setV(core::ConstVecDerivId::freeVelocity()); + cparams.setX(core::vec_id::read_access::freePosition); + cparams.setV(core::vec_id::read_access::freeVelocity); constraint::lagrangian::solver::MechanicalGetConstraintViolationVisitor(&cparams, getCP()->getDfree()).execute(context); } @@ -423,8 +423,8 @@ void ConstraintAnimationLoop::getIndividualConstraintSolvingProcess(const core:: { /// calling getConstraintResolution: each constraint provides a method that is used to solve it during GS iterations core::ConstraintParams cparams = core::ConstraintParams(*params); - cparams.setX(core::ConstVecCoordId::freePosition()); - cparams.setV(core::ConstVecDerivId::freeVelocity()); + cparams.setX(core::vec_id::read_access::freePosition); + cparams.setV(core::vec_id::read_access::freeVelocity); MechanicalGetConstraintResolutionVisitor(&cparams, getCP()->getConstraintResolutions(), 0).execute(context); } @@ -467,12 +467,12 @@ void ConstraintAnimationLoop::correctiveMotion(const core::ExecParams* params, s simulation::common::MechanicalOperations mop(params, node); - mop.propagateV(core::VecDerivId::velocity()); + mop.propagateV(core::vec_id::write_access::velocity); - mop.propagateDx(core::VecDerivId::dx(), true); + mop.propagateDx(core::vec_id::write_access::dx, true); // "mapped" x = xfree + dx - MechanicalVOpVisitor(params, core::VecCoordId::position(), core::ConstVecCoordId::freePosition(), core::ConstVecDerivId::dx(), 1.0 ).setOnlyMapped(true).execute(node); + MechanicalVOpVisitor(params, core::vec_id::write_access::position, core::vec_id::read_access::freePosition, core::vec_id::read_access::dx, 1.0 ).setOnlyMapped(true).execute(node); if(!d_schemeCorrection.getValue()) { @@ -564,8 +564,8 @@ void ConstraintAnimationLoop::step ( const core::ExecParams* params, SReal dt ) // This solver will work in freePosition and freeVelocity vectors. // We need to initialize them if it's not already done. - MechanicalVInitVisitor(params, core::VecCoordId::freePosition(), core::ConstVecCoordId::position(), true).execute(node); - MechanicalVInitVisitor(params, core::VecDerivId::freeVelocity(), core::ConstVecDerivId::velocity()).execute(node); + MechanicalVInitVisitor(params, core::vec_id::write_access::freePosition, core::vec_id::read_access::position, true).execute(node); + MechanicalVInitVisitor(params, core::vec_id::write_access::freeVelocity, core::vec_id::read_access::velocity).execute(node); if (d_doCollisionsFirst.getValue()) { @@ -622,8 +622,8 @@ void ConstraintAnimationLoop::step ( const core::ExecParams* params, SReal dt ) //////////////// BEFORE APPLYING CONSTRAINT : propagate position through mapping core::MechanicalParams mparams(*params); - MechanicalProjectPositionVisitor(&mparams, 0, core::VecCoordId::position()).execute(node); - MechanicalPropagateOnlyPositionVisitor(&mparams, 0, core::VecCoordId::position()).execute(node); + MechanicalProjectPositionVisitor(&mparams, 0, core::vec_id::write_access::position).execute(node); + MechanicalPropagateOnlyPositionVisitor(&mparams, 0, core::vec_id::write_access::position).execute(node); /// CONSTRAINT SPACE & COMPLIANCE COMPUTATION diff --git a/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/FreeMotionAnimationLoop.cpp b/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/FreeMotionAnimationLoop.cpp index 3e53dc399d4..4c4d97b1edb 100644 --- a/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/FreeMotionAnimationLoop.cpp +++ b/Sofa/Component/AnimationLoop/src/sofa/component/animationloop/FreeMotionAnimationLoop.cpp @@ -91,10 +91,10 @@ void FreeMotionAnimationLoop::init() simulation::common::VectorOperations vop(core::execparams::defaultInstance(), getContext()); - MultiVecDeriv dx(&vop, core::VecDerivId::dx()); + MultiVecDeriv dx(&vop, core::vec_id::write_access::dx); dx.realloc(&vop, !d_threadSafeVisitor.getValue(), true); - MultiVecDeriv df(&vop, core::VecDerivId::dforce()); + MultiVecDeriv df(&vop, core::vec_id::write_access::dforce); df.realloc(&vop, !d_threadSafeVisitor.getValue(), true); if (!l_constraintSolver) @@ -163,10 +163,10 @@ void FreeMotionAnimationLoop::step(const sofa::core::ExecParams* params, SReal d simulation::common::VectorOperations vop(params, node); simulation::common::MechanicalOperations mop(params, getContext()); - MultiVecCoord pos(&vop, core::VecCoordId::position() ); - MultiVecDeriv vel(&vop, core::VecDerivId::velocity() ); - MultiVecCoord freePos(&vop, core::VecCoordId::freePosition() ); - MultiVecDeriv freeVel(&vop, core::VecDerivId::freeVelocity() ); + MultiVecCoord pos(&vop, core::vec_id::write_access::position ); + MultiVecDeriv vel(&vop, core::vec_id::write_access::velocity ); + MultiVecCoord freePos(&vop, core::vec_id::write_access::freePosition ); + MultiVecDeriv freeVel(&vop, core::vec_id::write_access::freeVelocity ); core::ConstraintParams cparams(*params); cparams.setX(freePos); @@ -175,18 +175,18 @@ void FreeMotionAnimationLoop::step(const sofa::core::ExecParams* params, SReal d cparams.setLambda(l_constraintSolver->getLambda()); cparams.setOrder(m_solveVelocityConstraintFirst.getValue() ? core::ConstraintOrder::VEL : core::ConstraintOrder::POS_AND_VEL); - MultiVecDeriv dx(&vop, core::VecDerivId::dx()); + MultiVecDeriv dx(&vop, core::vec_id::write_access::dx); dx.realloc(&vop, !d_threadSafeVisitor.getValue(), true); - MultiVecDeriv df(&vop, core::VecDerivId::dforce()); + MultiVecDeriv df(&vop, core::vec_id::write_access::dforce); df.realloc(&vop, !d_threadSafeVisitor.getValue(), true); // This solver will work in freePosition and freeVelocity vectors. // We need to initialize them if it's not already done. { SCOPED_TIMER("MechanicalVInitVisitor"); - MechanicalVInitVisitor< core::V_COORD >(params, core::VecCoordId::freePosition(), core::ConstVecCoordId::position(), true).execute(node); - MechanicalVInitVisitor< core::V_DERIV >(params, core::VecDerivId::freeVelocity(), core::ConstVecDerivId::velocity(), true).execute(node); + MechanicalVInitVisitor< core::V_COORD >(params, core::vec_id::write_access::freePosition, core::vec_id::read_access::position, true).execute(node); + MechanicalVInitVisitor< core::V_DERIV >(params, core::vec_id::write_access::freeVelocity, core::vec_id::read_access::velocity, true).execute(node); } // This animation loop works with lagrangian constraints. Forces derive from the constraints. diff --git a/Sofa/Component/Collision/Detection/Intersection/src/sofa/component/collision/detection/intersection/LocalMinDistance.cpp b/Sofa/Component/Collision/Detection/Intersection/src/sofa/component/collision/detection/intersection/LocalMinDistance.cpp index 8c552575f9e..99a020d46d6 100644 --- a/Sofa/Component/Collision/Detection/Intersection/src/sofa/component/collision/detection/intersection/LocalMinDistance.cpp +++ b/Sofa/Component/Collision/Detection/Intersection/src/sofa/component/collision/detection/intersection/LocalMinDistance.cpp @@ -1204,7 +1204,7 @@ bool LocalMinDistance::testValidity(Point &p, const Vec3 &PQ) const return true; BaseMeshTopology* topology = p.getCollisionModel()->getCollisionTopology(); - const auto& x =(p.getCollisionModel()->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue()); + const auto& x =(p.getCollisionModel()->getMechanicalState()->read(core::vec_id::read_access::position)->getValue()); const auto& trianglesAroundVertex = topology->getTrianglesAroundVertex(p.getIndex()); const auto& edgesAroundVertex = topology->getEdgesAroundVertex(p.getIndex()); @@ -1278,7 +1278,7 @@ bool LocalMinDistance::testValidity(Line &l, const Vec3 &PQ) const AB.normalize(); BaseMeshTopology* topology = l.getCollisionModel()->getCollisionTopology(); - const auto& x =(l.getCollisionModel()->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue()); + const auto& x =(l.getCollisionModel()->getMechanicalState()->read(core::vec_id::read_access::position)->getValue()); const auto& trianglesAroundEdge = topology->getTrianglesAroundEdge(l.getIndex()); if ( trianglesAroundEdge.size() == 2) diff --git a/Sofa/Component/Collision/Detection/Intersection/src/sofa/component/collision/detection/intersection/MeshMinProximityIntersection.cpp b/Sofa/Component/Collision/Detection/Intersection/src/sofa/component/collision/detection/intersection/MeshMinProximityIntersection.cpp index 5b93974c424..47ba57e7b28 100644 --- a/Sofa/Component/Collision/Detection/Intersection/src/sofa/component/collision/detection/intersection/MeshMinProximityIntersection.cpp +++ b/Sofa/Component/Collision/Detection/Intersection/src/sofa/component/collision/detection/intersection/MeshMinProximityIntersection.cpp @@ -85,8 +85,8 @@ bool MeshMinProximityIntersection::testIntersection(Line& e1, Line& e2, const co const SReal alarmDist = currentIntersection->getAlarmDistance() + e1.getProximity() + e2.getProximity(); using Real = Line::Coord::value_type; - const auto& positions_e1 = e1.model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue(); - const auto& positions_e2 = e2.model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue(); + const auto& positions_e1 = e1.model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue(); + const auto& positions_e2 = e2.model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue(); const auto& e1p1 = positions_e1[e1.i1()]; const auto& e1p2 = positions_e1[e1.i2()]; @@ -129,8 +129,8 @@ int MeshMinProximityIntersection::computeIntersection(Line& e1, Line& e2, Output const SReal alarmDist = currentIntersection->getAlarmDistance() + e1.getProximity() + e2.getProximity(); using Real = Line::Coord::value_type; - const auto& positions_e1 = e1.model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue(); - const auto& positions_e2 = e2.model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue(); + const auto& positions_e1 = e1.model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue(); + const auto& positions_e2 = e2.model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue(); const auto& e1p1 = positions_e1[e1.i1()]; const auto& e1p2 = positions_e1[e1.i2()]; @@ -216,8 +216,8 @@ bool MeshMinProximityIntersection::testIntersection(Triangle& e2, Point& e1, con const SReal alarmDist = currentIntersection->getAlarmDistance() + e1.getProximity() + e2.getProximity(); - const auto& positions_e1 = e1.model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue(); - const auto& positions_e2 = e2.model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue(); + const auto& positions_e1 = e1.model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue(); + const auto& positions_e2 = e2.model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue(); const auto& e1p1 = positions_e1[e1.getIndex()]; const auto& e2p1 = positions_e2[e2.p1Index()]; @@ -272,8 +272,8 @@ int MeshMinProximityIntersection::computeIntersection(Triangle& e2, Point& e1, O const SReal alarmDist = currentIntersection->getAlarmDistance() + e1.getProximity() + e2.getProximity(); - const auto& positions_e1 = e1.model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue(); - const auto& positions_e2 = e2.model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue(); + const auto& positions_e1 = e1.model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue(); + const auto& positions_e2 = e2.model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue(); const auto& e1p1 = positions_e1[e1.getIndex()]; const auto& e2p1 = positions_e2[e2.p1Index()]; @@ -361,8 +361,8 @@ bool MeshMinProximityIntersection::testIntersection(Line& e2, Point& e1, const c const SReal alarmDist = currentIntersection->getAlarmDistance() + e1.getProximity() + e2.getProximity(); using Real = Line::Coord::value_type; - const auto& positions_e1 = e1.model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue(); - const auto& positions_e2 = e2.model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue(); + const auto& positions_e1 = e1.model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue(); + const auto& positions_e2 = e2.model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue(); const auto& e1p1 = positions_e1[e1.getIndex()]; const auto& e2p1 = positions_e2[e2.i1()]; @@ -391,8 +391,8 @@ int MeshMinProximityIntersection::computeIntersection(Line& e2, Point& e1, Outpu const SReal alarmDist = currentIntersection->getAlarmDistance() + e1.getProximity() + e2.getProximity(); - const auto& positions_e1 = e1.model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue(); - const auto& positions_e2 = e2.model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue(); + const auto& positions_e1 = e1.model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue(); + const auto& positions_e2 = e2.model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue(); const auto& e1p1 = positions_e1[e1.getIndex()]; const auto& e2p1 = positions_e2[e2.i1()]; diff --git a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/CylinderModel.inl b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/CylinderModel.inl index 02ec410f12b..0d704b09a46 100644 --- a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/CylinderModel.inl +++ b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/CylinderModel.inl @@ -213,7 +213,7 @@ typename CylinderCollisionModel::Real CylinderCollisionModel< DataTyp template const typename CylinderCollisionModel::Coord & CylinderCollisionModel< DataTypes >::center(sofa::Index i)const{ - return DataTypes::getCPos((m_mstate->read(core::ConstVecCoordId::position())->getValue())[i]); + return DataTypes::getCPos((m_mstate->read(core::vec_id::read_access::position)->getValue())[i]); } template @@ -255,7 +255,7 @@ typename TCylinder::Real TCylinder::radius() const template const typename CylinderCollisionModel::Coord & CylinderCollisionModel::velocity(sofa::Index index) const { - return DataTypes::getDPos(((m_mstate->read(core::ConstVecDerivId::velocity())->getValue()))[index]); + return DataTypes::getDPos(((m_mstate->read(core::vec_id::read_access::velocity)->getValue()))[index]); } @@ -264,7 +264,7 @@ const typename TCylinder::Coord & TCylinder::v() const {r template const sofa::type::Quat CylinderCollisionModel::orientation(sofa::Index index)const{ - return m_mstate->read(core::ConstVecCoordId::position())->getValue()[index].getOrientation(); + return m_mstate->read(core::vec_id::read_access::position)->getValue()[index].getOrientation(); } template diff --git a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/LineModel.inl b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/LineModel.inl index 313e6916eac..203537248e6 100644 --- a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/LineModel.inl +++ b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/LineModel.inl @@ -474,7 +474,7 @@ void LineCollisionModel::computeBoundingTree(int maxDepth) if (!empty()) { const SReal distance = this->proximity.getValue(); - const auto& positions = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const auto& positions = this->mstate->read(core::vec_id::read_access::position)->getValue(); for (sofa::Size i=0; i::computeBBox(const core::ExecParams* params, Real maxBBox[3] = {min_real,min_real,min_real}; Real minBBox[3] = {max_real,max_real,max_real}; - const auto& positions = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const auto& positions = this->mstate->read(core::vec_id::read_access::position)->getValue(); for (sofa::Size i=0; i inline sofa::Index TLine::i2() const { return this->model->elems[this->index].p[1]; } template -inline const typename DataTypes::Coord& TLine::p1() const { return this->model->mstate->read(core::ConstVecCoordId::position())->getValue()[this->model->elems[this->index].p[0]]; } +inline const typename DataTypes::Coord& TLine::p1() const { return this->model->mstate->read(core::vec_id::read_access::position)->getValue()[this->model->elems[this->index].p[0]]; } template -inline const typename DataTypes::Coord& TLine::p2() const { return this->model->mstate->read(core::ConstVecCoordId::position())->getValue()[this->model->elems[this->index].p[1]]; } +inline const typename DataTypes::Coord& TLine::p2() const { return this->model->mstate->read(core::vec_id::read_access::position)->getValue()[this->model->elems[this->index].p[1]]; } template inline const typename DataTypes::Coord& TLine::p(Index i) const { - return this->model->mstate->read(core::ConstVecCoordId::position())->getValue()[this->model->elems[this->index].p[i]]; + return this->model->mstate->read(core::vec_id::read_access::position)->getValue()[this->model->elems[this->index].p[i]]; } template inline const typename DataTypes::Coord& TLine::p1Free() const { if (hasFreePosition()) - return this->model->mstate->read(core::ConstVecCoordId::freePosition())->getValue()[this->model->elems[this->index].p[0]]; + return this->model->mstate->read(core::vec_id::read_access::freePosition)->getValue()[this->model->elems[this->index].p[0]]; else return p1(); } @@ -626,28 +626,28 @@ template inline const typename DataTypes::Coord& TLine::p2Free() const { if (hasFreePosition()) - return this->model->mstate->read(core::ConstVecCoordId::freePosition())->getValue()[this->model->elems[this->index].p[1]]; + return this->model->mstate->read(core::vec_id::read_access::freePosition)->getValue()[this->model->elems[this->index].p[1]]; else return p2(); } template -inline const typename DataTypes::Deriv& TLine::v1() const { return this->model->mstate->read(core::ConstVecDerivId::velocity())->getValue()[this->model->elems[this->index].p[0]]; } +inline const typename DataTypes::Deriv& TLine::v1() const { return this->model->mstate->read(core::vec_id::read_access::velocity)->getValue()[this->model->elems[this->index].p[0]]; } template -inline const typename DataTypes::Deriv& TLine::v2() const { return this->model->mstate->read(core::ConstVecDerivId::velocity())->getValue()[this->model->elems[this->index].p[1]]; } +inline const typename DataTypes::Deriv& TLine::v2() const { return this->model->mstate->read(core::vec_id::read_access::velocity)->getValue()[this->model->elems[this->index].p[1]]; } template inline typename DataTypes::Deriv TLine::n() const {return (this->model->mpoints->getNormal(this->i1()) + this->model->mpoints->getNormal( this->i2())).normalized();} template -inline typename LineCollisionModel::Deriv LineCollisionModel::velocity(sofa::Index index) const { return (mstate->read(core::ConstVecDerivId::velocity())->getValue()[elems[index].p[0]] + mstate->read(core::ConstVecDerivId::velocity())->getValue()[elems[index].p[1]])/((Real)(2.0)); } +inline typename LineCollisionModel::Deriv LineCollisionModel::velocity(sofa::Index index) const { return (mstate->read(core::vec_id::read_access::velocity)->getValue()[elems[index].p[0]] + mstate->read(core::vec_id::read_access::velocity)->getValue()[elems[index].p[1]])/((Real)(2.0)); } template inline int TLine::flags() const { return this->model->getLineFlags(this->index); } template -inline bool TLine::hasFreePosition() const { return this->model->mstate->read(core::ConstVecCoordId::freePosition())->isSet(); } +inline bool TLine::hasFreePosition() const { return this->model->mstate->read(core::vec_id::read_access::freePosition)->isSet(); } } //namespace sofa::component::collision::geometry diff --git a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/PointModel.h b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/PointModel.h index 8e8c89a8be5..84cbf118004 100644 --- a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/PointModel.h +++ b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/PointModel.h @@ -168,28 +168,28 @@ inline TPoint::TPoint(const core::CollisionElementIterator& i) } template -inline const typename DataTypes::Coord& TPoint::p() const { return this->model->mstate->read(core::ConstVecCoordId::position())->getValue()[this->index]; } +inline const typename DataTypes::Coord& TPoint::p() const { return this->model->mstate->read(core::vec_id::read_access::position)->getValue()[this->index]; } template inline const typename DataTypes::Coord& TPoint::pFree() const { if (hasFreePosition()) - return this->model->mstate->read(core::ConstVecCoordId::freePosition())->getValue()[this->index]; + return this->model->mstate->read(core::vec_id::read_access::freePosition)->getValue()[this->index]; else return p(); } template -inline const typename DataTypes::Deriv& TPoint::v() const { return this->model->mstate->read(core::ConstVecDerivId::velocity())->getValue()[this->index]; } +inline const typename DataTypes::Deriv& TPoint::v() const { return this->model->mstate->read(core::vec_id::read_access::velocity)->getValue()[this->index]; } template -inline const typename DataTypes::Deriv& PointCollisionModel::velocity(sofa::Index index) const { return mstate->read(core::ConstVecDerivId::velocity())->getValue()[index]; } +inline const typename DataTypes::Deriv& PointCollisionModel::velocity(sofa::Index index) const { return mstate->read(core::vec_id::read_access::velocity)->getValue()[index]; } template inline typename DataTypes::Deriv TPoint::n() const { return ((unsigned)this->indexmodel->normals.size()) ? this->model->normals[this->index] : Deriv(); } template -inline bool TPoint::hasFreePosition() const { return this->model->mstate->read(core::ConstVecCoordId::freePosition())->isSet(); } +inline bool TPoint::hasFreePosition() const { return this->model->mstate->read(core::vec_id::read_access::freePosition)->isSet(); } #if !defined(SOFA_COMPONENT_COLLISION_POINTCOLLISIONMODEL_CPP) extern template class SOFA_COMPONENT_COLLISION_GEOMETRY_API PointCollisionModel; diff --git a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/PointModel.inl b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/PointModel.inl index cd1c3acd4b0..45de29c5fc9 100644 --- a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/PointModel.inl +++ b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/PointModel.inl @@ -134,7 +134,7 @@ void PointCollisionModel::computeBoundingTree(int maxDepth) cubeModel->resize(size); if (!empty()) { - //VecCoord& x =mstate->read(core::ConstVecCoordId::position())->getValue(); + //VecCoord& x =mstate->read(core::vec_id::read_access::position)->getValue(); const SReal distance = this->proximity.getValue(); for (sofa::Size i=0; i::computeContinuousBoundingTree(SReal dt, int cubeModel->resize(size); if (!empty()) { - //VecCoord& x =mstate->read(core::ConstVecCoordId::position())->getValue(); - //VecDeriv& v = mstate->read(core::ConstVecDerivId::velocity())->getValue(); + //VecCoord& x =mstate->read(core::vec_id::read_access::position)->getValue(); + //VecDeriv& v = mstate->read(core::vec_id::read_access::velocity)->getValue(); const SReal distance = (SReal)this->proximity.getValue(); for (sofa::Size i=0; i::computeContinuousBoundingTree(SReal dt, int template void PointCollisionModel::updateNormals() { - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); auto n = x.size(); normals.resize(n); for (sofa::Index i=0; igetMechanicalState()->read(core::ConstVecCoordId::position())->getValue()[index]; + return model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue()[index]; } const type::Vec3& Ray::direction() const @@ -190,10 +190,10 @@ SReal Ray::l() const void Ray::setOrigin(const type::Vec3& newOrigin) { - auto xData = sofa::helper::getWriteAccessor(*model->getMechanicalState()->write(core::VecCoordId::position())); + auto xData = sofa::helper::getWriteAccessor(*model->getMechanicalState()->write(core::vec_id::write_access::position)); xData.wref()[index] = newOrigin; - auto xDataFree = sofa::helper::getWriteAccessor(*model->getMechanicalState()->write(core::VecCoordId::freePosition())); + auto xDataFree = sofa::helper::getWriteAccessor(*model->getMechanicalState()->write(core::vec_id::write_access::freePosition)); auto& freePos = xDataFree.wref(); freePos.resize(model->getMechanicalState()->getSize()); freePos[index] = newOrigin; diff --git a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/SphereModel.h b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/SphereModel.h index 260331691c0..ef5b8031204 100644 --- a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/SphereModel.h +++ b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/SphereModel.h @@ -194,28 +194,28 @@ inline TSphere::TSphere(const core::CollisionElementIterator& i) } template -inline const typename TSphere::Coord& TSphere::center() const { return DataTypes::getCPos(this->model->mstate->read(core::ConstVecCoordId::position())->getValue()[this->index]); } +inline const typename TSphere::Coord& TSphere::center() const { return DataTypes::getCPos(this->model->mstate->read(core::vec_id::read_access::position)->getValue()[this->index]); } template -inline const typename DataTypes::Coord & TSphere::rigidCenter() const { return this->model->mstate->read(core::ConstVecCoordId::position())->getValue()[this->index];} +inline const typename DataTypes::Coord & TSphere::rigidCenter() const { return this->model->mstate->read(core::vec_id::read_access::position)->getValue()[this->index];} template -inline const typename TSphere::Coord& TSphere::p() const { return DataTypes::getCPos(this->model->mstate->read(core::ConstVecCoordId::position())->getValue()[this->index]);} +inline const typename TSphere::Coord& TSphere::p() const { return DataTypes::getCPos(this->model->mstate->read(core::vec_id::read_access::position)->getValue()[this->index]);} template -inline const typename TSphere::Coord& TSphere::pFree() const { return (*this->model->mstate->read(core::ConstVecCoordId::freePosition())).getValue()[this->index]; } +inline const typename TSphere::Coord& TSphere::pFree() const { return (*this->model->mstate->read(core::vec_id::read_access::freePosition)).getValue()[this->index]; } template -inline const typename SphereCollisionModel::Coord& SphereCollisionModel::velocity(sofa::Index index) const { return DataTypes::getDPos(mstate->read(core::ConstVecDerivId::velocity())->getValue()[index]);} +inline const typename SphereCollisionModel::Coord& SphereCollisionModel::velocity(sofa::Index index) const { return DataTypes::getDPos(mstate->read(core::vec_id::read_access::velocity)->getValue()[index]);} template -inline const typename TSphere::Coord& TSphere::v() const { return DataTypes::getDPos(this->model->mstate->read(core::ConstVecDerivId::velocity())->getValue()[this->index]); } +inline const typename TSphere::Coord& TSphere::v() const { return DataTypes::getDPos(this->model->mstate->read(core::vec_id::read_access::velocity)->getValue()[this->index]); } template inline typename DataTypes::Real TSphere::r() const { return (Real) this->model->getRadius((unsigned)this->index); } template -inline bool TSphere::hasFreePosition() const { return this->model->mstate->read(core::ConstVecCoordId::freePosition())->isSet(); } +inline bool TSphere::hasFreePosition() const { return this->model->mstate->read(core::vec_id::read_access::freePosition)->isSet(); } using Sphere = TSphere; using RigidSphere = TSphere; diff --git a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TetrahedronModel.cpp b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TetrahedronModel.cpp index ee967216ff7..f8533385263 100644 --- a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TetrahedronModel.cpp +++ b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TetrahedronModel.cpp @@ -207,7 +207,7 @@ void TetrahedronCollisionModel::computeBoundingTree(int maxDepth) updateFromTopology(); Vec3 minElem, maxElem; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); for (std::size_t i=0; i(static_cast(i.getCollisionModel()), i.getIndex()) {} -inline const type::Vec3& Tetrahedron::p1() const { return model->mstate->read(core::ConstVecCoordId::position())->getValue()[(*(model->tetra))[index][0]]; } -inline const type::Vec3& Tetrahedron::p2() const { return model->mstate->read(core::ConstVecCoordId::position())->getValue()[(*(model->tetra))[index][1]]; } -inline const type::Vec3& Tetrahedron::p3() const { return model->mstate->read(core::ConstVecCoordId::position())->getValue()[(*(model->tetra))[index][2]]; } -inline const type::Vec3& Tetrahedron::p4() const { return model->mstate->read(core::ConstVecCoordId::position())->getValue()[(*(model->tetra))[index][3]]; } +inline const type::Vec3& Tetrahedron::p1() const { return model->mstate->read(core::vec_id::read_access::position)->getValue()[(*(model->tetra))[index][0]]; } +inline const type::Vec3& Tetrahedron::p2() const { return model->mstate->read(core::vec_id::read_access::position)->getValue()[(*(model->tetra))[index][1]]; } +inline const type::Vec3& Tetrahedron::p3() const { return model->mstate->read(core::vec_id::read_access::position)->getValue()[(*(model->tetra))[index][2]]; } +inline const type::Vec3& Tetrahedron::p4() const { return model->mstate->read(core::vec_id::read_access::position)->getValue()[(*(model->tetra))[index][3]]; } -inline const type::Vec3& Tetrahedron::p1Free() const { return model->mstate->read(core::ConstVecCoordId::freePosition())->getValue()[(*(model->tetra))[index][0]]; } -inline const type::Vec3& Tetrahedron::p2Free() const { return model->mstate->read(core::ConstVecCoordId::freePosition())->getValue()[(*(model->tetra))[index][1]]; } -inline const type::Vec3& Tetrahedron::p3Free() const { return model->mstate->read(core::ConstVecCoordId::freePosition())->getValue()[(*(model->tetra))[index][2]]; } -inline const type::Vec3& Tetrahedron::p4Free() const { return model->mstate->read(core::ConstVecCoordId::freePosition())->getValue()[(*(model->tetra))[index][3]]; } +inline const type::Vec3& Tetrahedron::p1Free() const { return model->mstate->read(core::vec_id::read_access::freePosition)->getValue()[(*(model->tetra))[index][0]]; } +inline const type::Vec3& Tetrahedron::p2Free() const { return model->mstate->read(core::vec_id::read_access::freePosition)->getValue()[(*(model->tetra))[index][1]]; } +inline const type::Vec3& Tetrahedron::p3Free() const { return model->mstate->read(core::vec_id::read_access::freePosition)->getValue()[(*(model->tetra))[index][2]]; } +inline const type::Vec3& Tetrahedron::p4Free() const { return model->mstate->read(core::vec_id::read_access::freePosition)->getValue()[(*(model->tetra))[index][3]]; } inline int Tetrahedron::p1Index() const { return (*(model->tetra))[index][0]; } inline int Tetrahedron::p2Index() const { return (*(model->tetra))[index][1]; } inline int Tetrahedron::p3Index() const { return (*(model->tetra))[index][2]; } inline int Tetrahedron::p4Index() const { return (*(model->tetra))[index][3]; } -inline const type::Vec3& Tetrahedron::v1() const { return model->mstate->read(core::ConstVecDerivId::velocity())->getValue()[(*(model->tetra))[index][0]]; } -inline const type::Vec3& Tetrahedron::v2() const { return model->mstate->read(core::ConstVecDerivId::velocity())->getValue()[(*(model->tetra))[index][1]]; } -inline const type::Vec3& Tetrahedron::v3() const { return model->mstate->read(core::ConstVecDerivId::velocity())->getValue()[(*(model->tetra))[index][2]]; } -inline const type::Vec3& Tetrahedron::v4() const { return model->mstate->read(core::ConstVecDerivId::velocity())->getValue()[(*(model->tetra))[index][3]]; } +inline const type::Vec3& Tetrahedron::v1() const { return model->mstate->read(core::vec_id::read_access::velocity)->getValue()[(*(model->tetra))[index][0]]; } +inline const type::Vec3& Tetrahedron::v2() const { return model->mstate->read(core::vec_id::read_access::velocity)->getValue()[(*(model->tetra))[index][1]]; } +inline const type::Vec3& Tetrahedron::v3() const { return model->mstate->read(core::vec_id::read_access::velocity)->getValue()[(*(model->tetra))[index][2]]; } +inline const type::Vec3& Tetrahedron::v4() const { return model->mstate->read(core::vec_id::read_access::velocity)->getValue()[(*(model->tetra))[index][3]]; } inline type::Vec3 Tetrahedron::getBary(const type::Vec3& p) const { return model->elems[index].coord2bary*(p-model->elems[index].coord0); } inline type::Vec3 Tetrahedron::getDBary(const type::Vec3& v) const { return model->elems[index].coord2bary*(v); } diff --git a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleModel.h b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleModel.h index a7fdbc1ce51..4671bae100a 100644 --- a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleModel.h +++ b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleModel.h @@ -189,7 +189,7 @@ class TriangleCollisionModel : public core::CollisionModel core::behavior::MechanicalState* getMechanicalState() { return m_mstate; } const core::behavior::MechanicalState* getMechanicalState() const { return m_mstate; } - const VecCoord& getX() const { return(getMechanicalState()->read(core::ConstVecCoordId::position())->getValue()); } + const VecCoord& getX() const { return(getMechanicalState()->read(core::vec_id::read_access::position)->getValue()); } const sofa::core::topology::BaseMeshTopology::SeqTriangles& getTriangles() const { return *m_triangles; } const VecDeriv& getNormals() const { return m_normals; } int getTriangleFlags(sofa::core::topology::BaseMeshTopology::TriangleID i); diff --git a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleModel.inl b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleModel.inl index 69cb8ec2998..a4fb0bddea0 100644 --- a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleModel.inl +++ b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleModel.inl @@ -232,7 +232,7 @@ void TriangleCollisionModel::computeBoundingTree(int maxDepth) m_needsUpdate=false; type::Vec3 minElem, maxElem; - const VecCoord& x = this->m_mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->m_mstate->read(core::vec_id::read_access::position)->getValue(); const bool calcNormals = d_computeNormals.getValue(); @@ -388,7 +388,7 @@ void TriangleCollisionModel::computeBBox(const core::ExecParams* para Real maxBBox[3] = {min_real,min_real,min_real}; Real minBBox[3] = {max_real,max_real,max_real}; - const auto& positions = this->m_mstate->read(core::ConstVecCoordId::position())->getValue(); + const auto& positions = this->m_mstate->read(core::vec_id::read_access::position)->getValue(); for (sofa::Size i=0; i::draw(const core::visual::VisualParams* v } template -inline const typename DataTypes::Coord& TTriangle::p1() const { return this->model->m_mstate->read(core::ConstVecCoordId::position())->getValue()[(*(this->model->m_triangles))[this->index][0]]; } +inline const typename DataTypes::Coord& TTriangle::p1() const { return this->model->m_mstate->read(core::vec_id::read_access::position)->getValue()[(*(this->model->m_triangles))[this->index][0]]; } template -inline const typename DataTypes::Coord& TTriangle::p2() const { return this->model->m_mstate->read(core::ConstVecCoordId::position())->getValue()[(*(this->model->m_triangles))[this->index][1]]; } +inline const typename DataTypes::Coord& TTriangle::p2() const { return this->model->m_mstate->read(core::vec_id::read_access::position)->getValue()[(*(this->model->m_triangles))[this->index][1]]; } template -inline const typename DataTypes::Coord& TTriangle::p3() const { return this->model->m_mstate->read(core::ConstVecCoordId::position())->getValue()[(*(this->model->m_triangles))[this->index][2]]; } +inline const typename DataTypes::Coord& TTriangle::p3() const { return this->model->m_mstate->read(core::vec_id::read_access::position)->getValue()[(*(this->model->m_triangles))[this->index][2]]; } template inline const typename DataTypes::Coord& TTriangle::p(Index i) const { - return this->model->m_mstate->read(core::ConstVecCoordId::position())->getValue()[(*(this->model->m_triangles))[this->index][i]]; + return this->model->m_mstate->read(core::vec_id::read_access::position)->getValue()[(*(this->model->m_triangles))[this->index][i]]; } template inline const typename DataTypes::Coord& TTriangle::operator[](Index i) const { - return this->model->m_mstate->read(core::ConstVecCoordId::position())->getValue()[(*(this->model->m_triangles))[this->index][i]]; + return this->model->m_mstate->read(core::vec_id::read_access::position)->getValue()[(*(this->model->m_triangles))[this->index][i]]; } template -inline const typename DataTypes::Coord& TTriangle::p1Free() const { return (this->model->m_mstate->read(sofa::core::ConstVecCoordId::freePosition())->getValue())[(*(this->model->m_triangles))[this->index][0]]; } +inline const typename DataTypes::Coord& TTriangle::p1Free() const { return (this->model->m_mstate->read(sofa::core::vec_id::read_access::freePosition)->getValue())[(*(this->model->m_triangles))[this->index][0]]; } template -inline const typename DataTypes::Coord& TTriangle::p2Free() const { return (this->model->m_mstate->read(sofa::core::ConstVecCoordId::freePosition())->getValue())[((*this->model->m_triangles))[this->index][1]]; } +inline const typename DataTypes::Coord& TTriangle::p2Free() const { return (this->model->m_mstate->read(sofa::core::vec_id::read_access::freePosition)->getValue())[((*this->model->m_triangles))[this->index][1]]; } template -inline const typename DataTypes::Coord& TTriangle::p3Free() const { return (this->model->m_mstate->read(sofa::core::ConstVecCoordId::freePosition())->getValue())[(*(this->model->m_triangles))[this->index][2]]; } +inline const typename DataTypes::Coord& TTriangle::p3Free() const { return (this->model->m_mstate->read(sofa::core::vec_id::read_access::freePosition)->getValue())[(*(this->model->m_triangles))[this->index][2]]; } template inline typename TTriangle::Index TTriangle::p1Index() const { return (*(this->model->m_triangles))[this->index][0]; } @@ -512,13 +512,13 @@ template inline typename TTriangle::Index TTriangle::p3Index() const { return (*(this->model->m_triangles))[this->index][2]; } template -inline const typename DataTypes::Deriv& TTriangle::v1() const { return (this->model->m_mstate->read(core::ConstVecDerivId::velocity())->getValue())[(*(this->model->m_triangles))[this->index][0]]; } +inline const typename DataTypes::Deriv& TTriangle::v1() const { return (this->model->m_mstate->read(core::vec_id::read_access::velocity)->getValue())[(*(this->model->m_triangles))[this->index][0]]; } template -inline const typename DataTypes::Deriv& TTriangle::v2() const { return this->model->m_mstate->read(core::ConstVecDerivId::velocity())->getValue()[(*(this->model->m_triangles))[this->index][1]]; } +inline const typename DataTypes::Deriv& TTriangle::v2() const { return this->model->m_mstate->read(core::vec_id::read_access::velocity)->getValue()[(*(this->model->m_triangles))[this->index][1]]; } template -inline const typename DataTypes::Deriv& TTriangle::v3() const { return this->model->m_mstate->read(core::ConstVecDerivId::velocity())->getValue()[(*(this->model->m_triangles))[this->index][2]]; } +inline const typename DataTypes::Deriv& TTriangle::v3() const { return this->model->m_mstate->read(core::vec_id::read_access::velocity)->getValue()[(*(this->model->m_triangles))[this->index][2]]; } template -inline const typename DataTypes::Deriv& TTriangle::v(Index i) const { return this->model->m_mstate->read(core::ConstVecDerivId::velocity())->getValue()[(*(this->model->m_triangles))[this->index][i]]; } +inline const typename DataTypes::Deriv& TTriangle::v(Index i) const { return this->model->m_mstate->read(core::vec_id::read_access::velocity)->getValue()[(*(this->model->m_triangles))[this->index][i]]; } template inline const typename DataTypes::Deriv& TTriangle::n() const { return this->model->m_normals[this->index]; } @@ -529,11 +529,11 @@ template inline int TTriangle::flags() const { return this->model->getTriangleFlags(this->index); } template -inline bool TTriangle::hasFreePosition() const { return this->model->m_mstate->read(core::ConstVecCoordId::freePosition())->isSet(); } +inline bool TTriangle::hasFreePosition() const { return this->model->m_mstate->read(core::vec_id::read_access::freePosition)->isSet(); } template -inline typename DataTypes::Deriv TriangleCollisionModel::velocity(sofa::Index index) const { return (m_mstate->read(core::ConstVecDerivId::velocity())->getValue()[(*(m_triangles))[index][0]] + m_mstate->read(core::ConstVecDerivId::velocity())->getValue()[(*(m_triangles))[index][1]] + - m_mstate->read(core::ConstVecDerivId::velocity())->getValue()[(*(m_triangles))[index][2]])/((Real)(3.0)); } +inline typename DataTypes::Deriv TriangleCollisionModel::velocity(sofa::Index index) const { return (m_mstate->read(core::vec_id::read_access::velocity)->getValue()[(*(m_triangles))[index][0]] + m_mstate->read(core::vec_id::read_access::velocity)->getValue()[(*(m_triangles))[index][1]] + + m_mstate->read(core::vec_id::read_access::velocity)->getValue()[(*(m_triangles))[index][2]])/((Real)(3.0)); } } //namespace sofa::component::collision::geometry diff --git a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleModelInRegularGrid.cpp b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleModelInRegularGrid.cpp index 288100b0603..631ecc9b353 100644 --- a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleModelInRegularGrid.cpp +++ b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleModelInRegularGrid.cpp @@ -110,8 +110,8 @@ void TriangleModelInRegularGrid::computeBoundingTree ( int ) m_needsUpdate=false; Vec3 minElem, maxElem; - const VecCoord& xHigh =_higher_mstate->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& x =m_mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& xHigh =_higher_mstate->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& x =m_mstate->read(core::vec_id::read_access::position)->getValue(); // no hierarchy if ( empty() ) diff --git a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleOctreeModel.cpp b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleOctreeModel.cpp index 0e86ca75743..7af6462b9aa 100644 --- a/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleOctreeModel.cpp +++ b/Sofa/Component/Collision/Geometry/src/sofa/component/collision/geometry/TriangleOctreeModel.cpp @@ -90,9 +90,9 @@ void TriangleOctreeModel::computeBoundingTree(int maxDepth) pNorms[i]=type::Vec3(0,0,0); } type::Vec3 minElem, maxElem; - maxElem[0]=minElem[0]=m_mstate->read(core::ConstVecCoordId::position())->getValue()[0][0]; - maxElem[1]=minElem[1]=m_mstate->read(core::ConstVecCoordId::position())->getValue()[0][1]; - maxElem[2]=minElem[2]=m_mstate->read(core::ConstVecCoordId::position())->getValue()[0][2]; + maxElem[0]=minElem[0]=m_mstate->read(core::vec_id::read_access::position)->getValue()[0][0]; + maxElem[1]=minElem[1]=m_mstate->read(core::vec_id::read_access::position)->getValue()[0][1]; + maxElem[2]=minElem[2]=m_mstate->read(core::vec_id::read_access::position)->getValue()[0][2]; cubeModel->resize(1); // size = number of triangles for (std::size_t i=1; i::draw(const core::visual::VisualParams using sofa::type::RGBAColor; - const VecCoord& p1 = this->mstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& p2 = this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p1 = this->mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& p2 = this->mstate2->read(core::vec_id::read_access::position)->getValue(); const type::vector& cc = contacts.getValue(); std::vector< type::Vec3 > points[4]; @@ -347,7 +347,7 @@ void PenalityContactForceField::grabPoint( if (static_cast< core::objectmodel::BaseObject *>(this->mstate1) == static_cast< const core::objectmodel::BaseObject *>(tool)) { - const auto& mstate2Pos = this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const auto& mstate2Pos = this->mstate2->read(core::vec_id::read_access::position)->getValue(); for (sofa::Index i=0; i< contactsRef.size(); i++) { @@ -364,7 +364,7 @@ void PenalityContactForceField::grabPoint( } else if (static_cast< core::objectmodel::BaseObject *>(this->mstate2) == static_cast< const core::objectmodel::BaseObject *>(tool)) { - const auto& mstate1Pos = this->mstate1->read(core::ConstVecCoordId::position())->getValue(); + const auto& mstate1Pos = this->mstate1->read(core::vec_id::read_access::position)->getValue(); for (sofa::Index i=0; i< contactsRef.size(); i++) { for (sofa::Index j=0; j::activateMappers( mapper2.updateXfree(); msg_info() << contacts.size() << " StickContactConstraint created"; - msg_info() << "mstate1 size = " << m_constraint->getMState1()->getSize() << " x = " << m_constraint->getMState1()->getSize() << " xfree = " << m_constraint->getMState1()->read(core::ConstVecCoordId::freePosition())->getValue().size(); - msg_info() << "mstate2 size = " << m_constraint->getMState2()->getSize() << " x = " << m_constraint->getMState2()->getSize() << " xfree = " << m_constraint->getMState2()->read(core::ConstVecCoordId::freePosition())->getValue().size(); + msg_info() << "mstate1 size = " << m_constraint->getMState1()->getSize() << " x = " << m_constraint->getMState1()->getSize() << " xfree = " << m_constraint->getMState1()->read(core::vec_id::read_access::freePosition)->getValue().size(); + msg_info() << "mstate2 size = " << m_constraint->getMState2()->getSize() << " x = " << m_constraint->getMState2()->getSize() << " xfree = " << m_constraint->getMState2()->read(core::vec_id::read_access::freePosition)->getValue().size(); } diff --git a/Sofa/Component/Collision/Response/Mapper/src/sofa/component/collision/response/mapper/BarycentricContactMapper.h b/Sofa/Component/Collision/Response/Mapper/src/sofa/component/collision/response/mapper/BarycentricContactMapper.h index ff4ff87f998..89907e5cf8b 100644 --- a/Sofa/Component/Collision/Response/Mapper/src/sofa/component/collision/response/mapper/BarycentricContactMapper.h +++ b/Sofa/Component/Collision/Response/Mapper/src/sofa/component/collision/response/mapper/BarycentricContactMapper.h @@ -84,8 +84,8 @@ class BarycentricContactMapper : public BaseContactMapper if (mapping != nullptr) { core::BaseMapping* map = mapping.get(); - map->apply(core::mechanicalparams::defaultInstance(), core::VecCoordId::position(), core::ConstVecCoordId::position()); - map->applyJ(core::mechanicalparams::defaultInstance(), core::VecDerivId::velocity(), core::ConstVecDerivId::velocity()); + map->apply(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::position, core::vec_id::read_access::position); + map->applyJ(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::velocity, core::vec_id::read_access::velocity); } } @@ -94,8 +94,8 @@ class BarycentricContactMapper : public BaseContactMapper if (mapping != nullptr) { core::BaseMapping* map = mapping.get(); - map->apply(core::mechanicalparams::defaultInstance(), core::VecCoordId::freePosition(), core::ConstVecCoordId::freePosition()); - map->applyJ(core::mechanicalparams::defaultInstance(), core::VecDerivId::freeVelocity(), core::ConstVecDerivId::freeVelocity()); + map->apply(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::freePosition, core::vec_id::read_access::freePosition); + map->applyJ(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::freeVelocity, core::vec_id::read_access::freeVelocity); } } @@ -104,7 +104,7 @@ class BarycentricContactMapper : public BaseContactMapper if (mapping != nullptr) { core::BaseMapping* map = mapping.get(); - map->apply(core::mechanicalparams::defaultInstance(), core::VecCoordId::restPosition(), core::ConstVecCoordId::restPosition()); + map->apply(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::restPosition, core::vec_id::read_access::restPosition); } } }; @@ -119,7 +119,7 @@ class ContactMappermapper->createPointInLine(P, this->model->getElemEdgeIndex(index), &this->model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue()); + return this->mapper->createPointInLine(P, this->model->getElemEdgeIndex(index), &this->model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue()); } sofa::Index addPointB(const Coord& /*P*/, sofa::Index index, Real& /*r*/, const type::Vec3& baryP) { @@ -141,13 +141,13 @@ class ContactMappermodel->getCollisionTopology()->getNbTriangles(); if (index < nbt) - return this->mapper->createPointInTriangle(P, index, &this->model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue()); + return this->mapper->createPointInTriangle(P, index, &this->model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue()); else { sofa::Index qindex = (index - nbt)/2; auto nbq = this->model->getCollisionTopology()->getNbQuads(); if (qindex < nbq) - return this->mapper->createPointInQuad(P, qindex, &this->model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue()); + return this->mapper->createPointInQuad(P, qindex, &this->model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue()); else { msg_error("ContactMapper>") << "Invalid contact element index "<model->getCollisionTopology()->getNbQuads(); if (qindex < nbq) - return this->mapper->createPointInQuad(P, qindex, &this->model->getMechanicalState()->read(core::ConstVecCoordId::position())->getValue()); + return this->mapper->createPointInQuad(P, qindex, &this->model->getMechanicalState()->read(core::vec_id::read_access::position)->getValue()); else { msg_error("ContactMapper>") << "Invalid contact element index "< { if (mapping!=nullptr) { - mapping->apply(core::mechanicalparams::defaultInstance(), core::VecCoordId::position(), core::ConstVecCoordId::position()); - mapping->applyJ(core::mechanicalparams::defaultInstance(), core::VecDerivId::velocity(), core::ConstVecDerivId::velocity()); + mapping->apply(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::position, core::vec_id::read_access::position); + mapping->applyJ(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::velocity, core::vec_id::read_access::velocity); } } @@ -85,8 +85,8 @@ class IdentityContactMapper : public BaseContactMapper { if (mapping!=nullptr) { - mapping->apply(core::mechanicalparams::defaultInstance(), core::VecCoordId::freePosition(), core::ConstVecCoordId::freePosition()); - mapping->applyJ(core::mechanicalparams::defaultInstance(), core::VecDerivId::freeVelocity(), core::ConstVecDerivId::freeVelocity()); + mapping->apply(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::freePosition, core::vec_id::read_access::freePosition); + mapping->applyJ(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::freeVelocity, core::vec_id::read_access::freeVelocity); } } @@ -95,7 +95,7 @@ class IdentityContactMapper : public BaseContactMapper { if(mapping!=nullptr) { - mapping->apply(core::mechanicalparams::defaultInstance(), core::VecCoordId::restPosition(), core::ConstVecCoordId::restPosition()); + mapping->apply(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::restPosition, core::vec_id::read_access::restPosition); } } }; diff --git a/Sofa/Component/Collision/Response/Mapper/src/sofa/component/collision/response/mapper/RigidContactMapper.h b/Sofa/Component/Collision/Response/Mapper/src/sofa/component/collision/response/mapper/RigidContactMapper.h index 163b3c87c8e..da9c3c9301a 100644 --- a/Sofa/Component/Collision/Response/Mapper/src/sofa/component/collision/response/mapper/RigidContactMapper.h +++ b/Sofa/Component/Collision/Response/Mapper/src/sofa/component/collision/response/mapper/RigidContactMapper.h @@ -91,7 +91,7 @@ class RigidContactMapper : public BaseContactMapper } else { - helper::WriteAccessor > xData = *outmodel->write(core::VecCoordId::position()); + helper::WriteAccessor > xData = *outmodel->write(core::vec_id::write_access::position); xData.wref()[i] = P; } return i; @@ -102,8 +102,8 @@ class RigidContactMapper : public BaseContactMapper if (mapping != nullptr) { core::BaseMapping* map = mapping.get(); - map->apply(core::mechanicalparams::defaultInstance(), core::VecCoordId::position(), core::ConstVecCoordId::position()); - map->applyJ(core::mechanicalparams::defaultInstance(), core::VecDerivId::velocity(), core::ConstVecDerivId::velocity()); + map->apply(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::position, core::vec_id::read_access::position); + map->applyJ(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::velocity, core::vec_id::read_access::velocity); } } @@ -112,8 +112,8 @@ class RigidContactMapper : public BaseContactMapper if (mapping != nullptr) { core::BaseMapping* map = mapping.get(); - map->apply(core::mechanicalparams::defaultInstance(), core::VecCoordId::freePosition(), core::ConstVecCoordId::freePosition()); - map->applyJ(core::mechanicalparams::defaultInstance(), core::VecDerivId::freeVelocity(), core::ConstVecDerivId::freeVelocity()); + map->apply(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::freePosition, core::vec_id::read_access::freePosition); + map->applyJ(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::freeVelocity, core::vec_id::read_access::freeVelocity); } } }; diff --git a/Sofa/Component/Collision/Response/Mapper/src/sofa/component/collision/response/mapper/SubsetContactMapper.inl b/Sofa/Component/Collision/Response/Mapper/src/sofa/component/collision/response/mapper/SubsetContactMapper.inl index 5a65e4a1e30..1f10739cc07 100644 --- a/Sofa/Component/Collision/Response/Mapper/src/sofa/component/collision/response/mapper/SubsetContactMapper.inl +++ b/Sofa/Component/Collision/Response/Mapper/src/sofa/component/collision/response/mapper/SubsetContactMapper.inl @@ -110,7 +110,7 @@ typename SubsetContactMapper::Index SubsetContactMap } else { - helper::WriteAccessor > d_x = *outmodel->write(core::VecCoordId::position()); + helper::WriteAccessor > d_x = *outmodel->write(core::vec_id::write_access::position); VecCoord& x = d_x.wref(); x[i] = P; } @@ -128,8 +128,8 @@ void SubsetContactMapper::update() needInit = false; } core::BaseMapping* map = mapping.get(); - map->apply(core::mechanicalparams::defaultInstance(), core::VecCoordId::position(), core::ConstVecCoordId::position()); - map->applyJ(core::mechanicalparams::defaultInstance(), core::VecDerivId::velocity(), core::ConstVecDerivId::velocity()); + map->apply(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::position, core::vec_id::read_access::position); + map->applyJ(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::velocity, core::vec_id::read_access::velocity); } } @@ -145,7 +145,7 @@ void SubsetContactMapper::updateXfree() } core::BaseMapping* map = mapping.get(); - map->apply(core::mechanicalparams::defaultInstance(), core::VecCoordId::freePosition(), core::ConstVecCoordId::freePosition()); + map->apply(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::freePosition, core::vec_id::read_access::freePosition); } } diff --git a/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/GenericConstraintCorrection.cpp b/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/GenericConstraintCorrection.cpp index fddcc8fde5c..9250a7f9a21 100644 --- a/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/GenericConstraintCorrection.cpp +++ b/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/GenericConstraintCorrection.cpp @@ -235,7 +235,7 @@ void GenericConstraintCorrection::applyContactForce(const BaseVector *f) computeMotionCorrectionFromLambda(&cparams, cparams.dx(), f); - applyMotionCorrection(&cparams, VecCoordId::position(), VecDerivId::velocity(), cparams.dx(), cparams.lambda()); + applyMotionCorrection(&cparams, core::vec_id::write_access::position, core::vec_id::write_access::velocity, cparams.dx(), cparams.lambda()); } void GenericConstraintCorrection::computeResidual(const ExecParams* params, linearalgebra::BaseVector *lambda) diff --git a/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/LinearSolverConstraintCorrection.inl b/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/LinearSolverConstraintCorrection.inl index c29e6e20a98..098fe526ef0 100644 --- a/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/LinearSolverConstraintCorrection.inl +++ b/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/LinearSolverConstraintCorrection.inl @@ -329,7 +329,7 @@ template void LinearSolverConstraintCorrection::applyContactForce(const linearalgebra::BaseVector *f) { core::VecDerivId forceID(core::VecDerivId::V_FIRST_DYNAMIC_INDEX); - core::VecDerivId dxID = core::VecDerivId::dx(); + core::VecDerivId dxID = core::vec_id::write_access::dx; const unsigned int numDOFs = mstate->getSize(); @@ -349,7 +349,7 @@ void LinearSolverConstraintCorrection::applyContactForce(const linear for (unsigned int i=0; i< numDOFs; i++) force[i] = Deriv(); - const MatrixDeriv& c = mstate->read(core::ConstMatrixDerivId::constraintJacobian())->getValue(); + const MatrixDeriv& c = mstate->read(core::vec_id::read_access::constraintJacobian)->getValue(); MatrixDerivRowConstIterator rowItEnd = c.end(); @@ -379,10 +379,10 @@ void LinearSolverConstraintCorrection::applyContactForce(const linear // use the OdeSolver to get the position integration factor const SReal velocityFactor = l_ODESolver.get()->getVelocityIntegrationFactor(); - Data& xData = *mstate->write(core::VecCoordId::position()); - Data& vData = *mstate->write(core::VecDerivId::velocity()); - const Data & xfreeData = *mstate->read(core::ConstVecCoordId::freePosition()); - const Data & vfreeData = *mstate->read(core::ConstVecDerivId::freeVelocity()); + Data& xData = *mstate->write(core::vec_id::write_access::position); + Data& vData = *mstate->write(core::vec_id::write_access::velocity); + const Data & xfreeData = *mstate->read(core::vec_id::read_access::freePosition); + const Data & vfreeData = *mstate->read(core::vec_id::read_access::freeVelocity); VecCoord& x = *xData.beginEdit(); VecDeriv& v = *vData.beginEdit(); const VecCoord& x_free = xfreeData.getValue(); @@ -414,7 +414,7 @@ void LinearSolverConstraintCorrection::applyContactForce(const linear template void LinearSolverConstraintCorrection::resetContactForce() { - Data& forceData = *mstate->write(core::VecDerivId::force()); + Data& forceData = *mstate->write(core::vec_id::write_access::force); VecDeriv& force = *forceData.beginEdit(); for( unsigned i=0; i::resetContactForce() template bool LinearSolverConstraintCorrection::hasConstraintNumber(int index) { - const MatrixDeriv& c = mstate->read(core::ConstMatrixDerivId::constraintJacobian())->getValue(); + const MatrixDeriv& c = mstate->read(core::vec_id::read_access::constraintJacobian)->getValue(); return c.readLine(index) != c.end(); } @@ -442,7 +442,7 @@ void LinearSolverConstraintCorrection::resetForUnbuiltResolution(SRea { verify_constraints(); - const MatrixDeriv& constraints = mstate->read(core::ConstMatrixDerivId::constraintJacobian())->getValue(); + const MatrixDeriv& constraints = mstate->read(core::vec_id::read_access::constraintJacobian)->getValue(); constraint_force.clear(); constraint_force.resize(mstate->getSize()); @@ -535,7 +535,7 @@ void LinearSolverConstraintCorrection::resetForUnbuiltResolution(SRea /////////////// SET INFO FOR LINEAR SOLVER ///////////// core::VecDerivId forceID(core::VecDerivId::V_FIRST_DYNAMIC_INDEX); - core::VecDerivId dxID = core::VecDerivId::dx(); + core::VecDerivId dxID = core::vec_id::write_access::dx; l_linearSolver->setSystemRHVector(forceID); l_linearSolver->setSystemLHVector(dxID); @@ -583,7 +583,7 @@ void LinearSolverConstraintCorrection::resetForUnbuiltResolution(SRea template void LinearSolverConstraintCorrection::addConstraintDisplacement(SReal*d, int begin, int end) { - const MatrixDeriv& constraints = mstate->read(core::ConstMatrixDerivId::constraintJacobian())->getValue(); + const MatrixDeriv& constraints = mstate->read(core::vec_id::read_access::constraintJacobian)->getValue(); last_disp = begin; @@ -652,7 +652,7 @@ void LinearSolverConstraintCorrection::setConstraintDForce(SReal* df, _new_force = true; constexpr const auto derivDim = Deriv::total_size; - const MatrixDeriv& constraints = mstate->read(core::ConstMatrixDerivId::constraintJacobian())->getValue(); + const MatrixDeriv& constraints = mstate->read(core::vec_id::read_access::constraintJacobian)->getValue(); // TODO => optimisation !!! for (int i = begin; i <= end; i++) @@ -699,7 +699,7 @@ void LinearSolverConstraintCorrection::getBlockDiagonalCompliance(lin const unsigned int numDOFReals = numDOFs * N; // Compute J - const MatrixDeriv& constraints = mstate->read(core::ConstMatrixDerivId::constraintJacobian())->getValue(); + const MatrixDeriv& constraints = mstate->read(core::vec_id::read_access::constraintJacobian)->getValue(); const sofa::SignedIndex totalNumConstraints = W->rowSize(); m_constraintJacobian.resize(totalNumConstraints, numDOFReals); diff --git a/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/PrecomputedConstraintCorrection.cpp b/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/PrecomputedConstraintCorrection.cpp index 9a69337d036..986cefd554e 100644 --- a/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/PrecomputedConstraintCorrection.cpp +++ b/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/PrecomputedConstraintCorrection.cpp @@ -32,9 +32,9 @@ namespace sofa::component::constraint::lagrangian::correction template<> SOFA_COMPONENT_CONSTRAINT_LAGRANGIAN_CORRECTION_API void PrecomputedConstraintCorrection< defaulttype::Rigid3Types >::rotateConstraints(bool back) { - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& x0 = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); - helper::WriteAccessor > cData = *this->mstate->write(core::MatrixDerivId::constraintJacobian()); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& x0 = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); + helper::WriteAccessor > cData = *this->mstate->write(core::vec_id::write_access::constraintJacobian); MatrixDeriv& c = cData.wref(); // On fait tourner les normales (en les ramenant dans le "pseudo" repere initial) @@ -84,10 +84,10 @@ SOFA_COMPONENT_CONSTRAINT_LAGRANGIAN_CORRECTION_API void PrecomputedConstraintCo template<> SOFA_COMPONENT_CONSTRAINT_LAGRANGIAN_CORRECTION_API void PrecomputedConstraintCorrection::rotateResponse() { - helper::WriteAccessor > dxData = *this->mstate->write(core::VecDerivId::dx()); + helper::WriteAccessor > dxData = *this->mstate->write(core::vec_id::write_access::dx); VecDeriv& dx = dxData.wref(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& x0 = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& x0 = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); for(unsigned int j = 0; j < dx.size(); j++) { // on passe les deplacements du repere local (au repos) au repere global diff --git a/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/PrecomputedConstraintCorrection.inl b/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/PrecomputedConstraintCorrection.inl index 5a500629730..252f807c20f 100644 --- a/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/PrecomputedConstraintCorrection.inl +++ b/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/PrecomputedConstraintCorrection.inl @@ -220,7 +220,7 @@ void PrecomputedConstraintCorrection::bwdInit() { Inherit::init(); - const VecDeriv& v0 = this->mstate->read(core::ConstVecDerivId::velocity())->getValue(); + const VecDeriv& v0 = this->mstate->read(core::vec_id::read_access::velocity)->getValue(); nbNodes = v0.size(); @@ -309,14 +309,14 @@ void PrecomputedConstraintCorrection::bwdInit() } - helper::ReadAccessor< Data< VecCoord > > rposData = *this->mstate->read(core::ConstVecCoordId::position()); + helper::ReadAccessor< Data< VecCoord > > rposData = *this->mstate->read(core::vec_id::read_access::position); const VecCoord prev_pos = rposData.ref(); - helper::WriteAccessor< Data< VecDeriv > > velocityData = *this->mstate->write(core::VecDerivId::velocity()); + helper::WriteAccessor< Data< VecDeriv > > velocityData = *this->mstate->write(core::vec_id::write_access::velocity); VecDeriv& velocity = velocityData.wref(); const VecDeriv prev_velocity = velocity; - helper::WriteAccessor< Data< VecDeriv > > forceData = *this->mstate->write(core::VecDerivId::externalForce()); + helper::WriteAccessor< Data< VecDeriv > > forceData = *this->mstate->write(core::vec_id::write_access::externalForce); VecDeriv& force = forceData.wref(); force.clear(); force.resize(nbNodes); @@ -325,7 +325,7 @@ void PrecomputedConstraintCorrection::bwdInit() /// (avoid to have a line of 0 at the top of the matrix) if (eulerSolver) { - eulerSolver->solve(core::execparams::defaultInstance(), dt, core::VecCoordId::position(), core::VecDerivId::velocity()); + eulerSolver->solve(core::execparams::defaultInstance(), dt, core::vec_id::write_access::position, core::vec_id::write_access::velocity); } Deriv unitary_force; @@ -348,7 +348,7 @@ void PrecomputedConstraintCorrection::bwdInit() velocity.resize(nbNodes); // Actualize ref to the position vector ; it seems it is changed at every eulerSolver->solve() - helper::WriteOnlyAccessor< Data< VecCoord > > wposData = *this->mstate->write(core::VecCoordId::position()); + helper::WriteOnlyAccessor< Data< VecCoord > > wposData = *this->mstate->write(core::vec_id::write_access::position); VecCoord& pos = wposData.wref(); for (unsigned int n = 0; n < nbNodes; n++) @@ -360,7 +360,7 @@ void PrecomputedConstraintCorrection::bwdInit() { fact *= eulerSolver->getPositionIntegrationFactor(); // here, we compute a compliance - eulerSolver->solve(core::execparams::defaultInstance(), dt, core::VecCoordId::position(), core::VecDerivId::velocity()); + eulerSolver->solve(core::execparams::defaultInstance(), dt, core::vec_id::write_access::position, core::vec_id::write_access::velocity); if (linearSolver) linearSolver->freezeSystemMatrix(); // do not recompute the matrix for the rest of the precomputation @@ -401,7 +401,7 @@ void PrecomputedConstraintCorrection::bwdInit() for (unsigned int i = 0; i < velocity.size(); i++) velocity[i] = prev_velocity[i]; - helper::WriteOnlyAccessor< Data< VecCoord > > wposData = *this->mstate->write(core::VecCoordId::position()); + helper::WriteOnlyAccessor< Data< VecCoord > > wposData = *this->mstate->write(core::vec_id::write_access::position); VecCoord& pos = wposData.wref(); // Restore position @@ -672,7 +672,7 @@ void PrecomputedConstraintCorrection::applyVelocityCorrection(const s auto dv = sofa::helper::getWriteAccessor(dv_d); VecDeriv& v = *v_d.beginEdit(); - const VecDeriv& dx = this->mstate->read(core::VecDerivId::dx())->getValue(); + const VecDeriv& dx = this->mstate->read(core::vec_id::write_access::dx)->getValue(); const VecDeriv& v_free = cparams->readV(this->mstate)->getValue(); const SReal invDt = 1.0_sreal / this->getContext()->getDt(); @@ -693,18 +693,18 @@ void PrecomputedConstraintCorrection::applyVelocityCorrection(const s template void PrecomputedConstraintCorrection::applyContactForce(const linearalgebra::BaseVector *f) { - helper::WriteAccessor > forceData = *this->mstate->write(core::VecDerivId::force()); - helper::WriteAccessor > dxData = *this->mstate->write(core::VecDerivId::dx()); - helper::WriteAccessor > xData = *this->mstate->write(core::VecCoordId::position()); - helper::WriteAccessor > vData = *this->mstate->write(core::VecDerivId::velocity()); + helper::WriteAccessor > forceData = *this->mstate->write(core::vec_id::write_access::force); + helper::WriteAccessor > dxData = *this->mstate->write(core::vec_id::write_access::dx); + helper::WriteAccessor > xData = *this->mstate->write(core::vec_id::write_access::position); + helper::WriteAccessor > vData = *this->mstate->write(core::vec_id::write_access::velocity); VecDeriv& force = forceData.wref(); VecDeriv& dx = dxData.wref(); VecCoord& x = xData.wref(); VecDeriv& v = vData.wref(); - const VecDeriv& v_free = this->mstate->read(core::ConstVecDerivId::freeVelocity())->getValue(); - const VecCoord& x_free = this->mstate->read(core::ConstVecCoordId::freePosition())->getValue(); - const MatrixDeriv& c = this->mstate->read(core::ConstMatrixDerivId::constraintJacobian())->getValue(); + const VecDeriv& v_free = this->mstate->read(core::vec_id::read_access::freeVelocity)->getValue(); + const VecCoord& x_free = this->mstate->read(core::vec_id::read_access::freePosition)->getValue(); + const MatrixDeriv& c = this->mstate->read(core::vec_id::read_access::constraintJacobian)->getValue(); const SReal dt = this->getContext()->getDt(); @@ -797,7 +797,7 @@ void PrecomputedConstraintCorrection::getComplianceMatrix(linearalgeb template void PrecomputedConstraintCorrection::resetContactForce() { - helper::WriteAccessor > forceData = *this->mstate->write(core::VecDerivId::force()); + helper::WriteAccessor > forceData = *this->mstate->write(core::vec_id::write_access::force); VecDeriv& force = forceData.wref(); for( unsigned i=0; i::draw(const core::visual::Visu } } - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); const auto& rotations = rotationFinder->getRotations(); for (unsigned int i=0; i< x.size(); i++) { @@ -858,7 +858,7 @@ void PrecomputedConstraintCorrection< DataTypes >::rotateConstraints(bool back) { using sofa::core::behavior::RotationFinder; - helper::WriteAccessor > cData = *this->mstate->write(core::MatrixDerivId::constraintJacobian()); + helper::WriteAccessor > cData = *this->mstate->write(core::vec_id::write_access::constraintJacobian); MatrixDeriv& c = cData.wref(); const simulation::Node *node = dynamic_cast< simulation::Node * >(this->getContext()); @@ -934,7 +934,7 @@ void PrecomputedConstraintCorrection::rotateResponse() return; } - helper::WriteAccessor > dxData = *this->mstate->write(core::VecDerivId::dx()); + helper::WriteAccessor > dxData = *this->mstate->write(core::vec_id::write_access::dx); VecDeriv& dx = dxData.wref(); const auto& rotations = rotationFinder->getRotations(); @@ -951,7 +951,7 @@ template void PrecomputedConstraintCorrection::resetForUnbuiltResolution(SReal* f, std::list& /*renumbering*/) { constraint_force = f; - const MatrixDeriv& c = this->mstate->read(core::ConstMatrixDerivId::constraintJacobian())->getValue(); + const MatrixDeriv& c = this->mstate->read(core::vec_id::read_access::constraintJacobian)->getValue(); #ifdef NEW_METHOD_UNBUILT constraint_D.clear(); diff --git a/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/UncoupledConstraintCorrection.inl b/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/UncoupledConstraintCorrection.inl index 698e9883a49..bffe28596b2 100644 --- a/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/UncoupledConstraintCorrection.inl +++ b/Sofa/Component/Constraint/Lagrangian/Correction/src/sofa/component/constraint/lagrangian/correction/UncoupledConstraintCorrection.inl @@ -196,7 +196,7 @@ void UncoupledConstraintCorrection::init() msg_warning() << "Neither the \'defaultCompliance\' nor the \'compliance\' data is set, please set one to define your compliance matrix"; } - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); if (d_compliance.getValue().size() == 1 && d_defaultCompliance.isSet() && d_defaultCompliance.getValue() == d_compliance.getValue()[0]) { @@ -289,7 +289,7 @@ void UncoupledConstraintCorrection::getComplianceWithConstraintMerge( if(!this->isComponentStateValid()) return; - helper::WriteAccessor > constraintsData = *this->mstate->write(core::MatrixDerivId::constraintJacobian()); + helper::WriteAccessor > constraintsData = *this->mstate->write(core::vec_id::write_access::constraintJacobian); MatrixDeriv& constraints = constraintsData.wref(); MatrixDeriv constraintCopy; @@ -622,13 +622,13 @@ void UncoupledConstraintCorrection::applyContactForce(const linearalg if(!this->isComponentStateValid()) return; - helper::WriteAccessor > forceData = *this->mstate->write(core::VecDerivId::externalForce()); + helper::WriteAccessor > forceData = *this->mstate->write(core::vec_id::write_access::externalForce); VecDeriv& force = forceData.wref(); - const MatrixDeriv& constraints = this->mstate->read(core::ConstMatrixDerivId::constraintJacobian())->getValue(); + const MatrixDeriv& constraints = this->mstate->read(core::vec_id::read_access::constraintJacobian)->getValue(); const VecReal& comp = d_compliance.getValue(); const Real comp0 = d_defaultCompliance.getValue(); - force.resize((this->mstate->read(core::ConstVecCoordId::position())->getValue()).size()); + force.resize((this->mstate->read(core::vec_id::read_access::position)->getValue()).size()); MatrixDerivRowConstIterator rowItEnd = constraints.end(); @@ -648,14 +648,14 @@ void UncoupledConstraintCorrection::applyContactForce(const linearalg } - helper::WriteAccessor > dxData = *this->mstate->write(core::VecDerivId::dx()); + helper::WriteAccessor > dxData = *this->mstate->write(core::vec_id::write_access::dx); VecDeriv& dx = dxData.wref(); - helper::WriteAccessor > xData = *this->mstate->write(core::VecCoordId::position()); + helper::WriteAccessor > xData = *this->mstate->write(core::vec_id::write_access::position); VecCoord& x = xData.wref(); - helper::WriteAccessor > vData = *this->mstate->write(core::VecDerivId::velocity()); + helper::WriteAccessor > vData = *this->mstate->write(core::vec_id::write_access::velocity); VecDeriv& v = vData.wref(); - const VecDeriv& v_free = this->mstate->read(core::ConstVecDerivId::freeVelocity())->getValue(); - const VecCoord& x_free = this->mstate->read(core::ConstVecCoordId::freePosition())->getValue(); + const VecDeriv& v_free = this->mstate->read(core::vec_id::read_access::freeVelocity)->getValue(); + const VecCoord& x_free = this->mstate->read(core::vec_id::read_access::freePosition)->getValue(); const bool useOdeIntegrationFactors = d_useOdeSolverIntegrationFactors.getValue(); @@ -683,7 +683,7 @@ void UncoupledConstraintCorrection::applyContactForce(const linearalg template void UncoupledConstraintCorrection::resetContactForce() { - helper::WriteAccessor > forceData = *this->mstate->write(core::VecDerivId::externalForce()); + helper::WriteAccessor > forceData = *this->mstate->write(core::vec_id::write_access::externalForce); VecDeriv& force = forceData.wref(); for (unsigned i = 0; i < force.size(); ++i) @@ -697,7 +697,7 @@ void UncoupledConstraintCorrection::resetContactForce() template bool UncoupledConstraintCorrection::hasConstraintNumber(int index) { - const MatrixDeriv &constraints = this->mstate->read(core::ConstMatrixDerivId::constraintJacobian())->getValue(); + const MatrixDeriv &constraints = this->mstate->read(core::vec_id::read_access::constraintJacobian)->getValue(); return (constraints.readLine(index) != constraints.end()); } @@ -706,7 +706,7 @@ bool UncoupledConstraintCorrection::hasConstraintNumber(int index) template void UncoupledConstraintCorrection::resetForUnbuiltResolution(SReal * f, std::list& /*renumbering*/) { - const MatrixDeriv& constraints = this->mstate->read(core::ConstMatrixDerivId::constraintJacobian())->getValue(); + const MatrixDeriv& constraints = this->mstate->read(core::vec_id::read_access::constraintJacobian)->getValue(); constraint_disp.clear(); constraint_disp.resize(this->mstate->getSize()); @@ -753,7 +753,7 @@ void UncoupledConstraintCorrection::addConstraintDisplacement(SReal * if(!this->isComponentStateValid()) return; - const MatrixDeriv& constraints = this->mstate->read(core::ConstMatrixDerivId::constraintJacobian())->getValue(); + const MatrixDeriv& constraints = this->mstate->read(core::vec_id::read_access::constraintJacobian)->getValue(); for (int id = begin; id <= end; id++) { @@ -783,7 +783,7 @@ void UncoupledConstraintCorrection::setConstraintDForce(SReal * df, i /// if update is true, it computes the displacements due to this delta of force. /// As the contact are uncoupled, a displacement is obtained only on dof involved with the constraints - const MatrixDeriv& constraints = this->mstate->read(core::ConstMatrixDerivId::constraintJacobian())->getValue(); + const MatrixDeriv& constraints = this->mstate->read(core::vec_id::read_access::constraintJacobian)->getValue(); const VecReal& comp = d_compliance.getValue(); const Real comp0 = d_defaultCompliance.getValue(); @@ -820,7 +820,7 @@ void UncoupledConstraintCorrection::setConstraintDForce(SReal * df, i template void UncoupledConstraintCorrection::getBlockDiagonalCompliance(linearalgebra::BaseMatrix* W, int begin, int end) { - const MatrixDeriv& constraints = this->mstate->read(core::ConstMatrixDerivId::constraintJacobian())->getValue(); + const MatrixDeriv& constraints = this->mstate->read(core::vec_id::read_access::constraintJacobian)->getValue(); const VecReal& comp = d_compliance.getValue(); const Real comp0 = d_defaultCompliance.getValue(); diff --git a/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/BilateralLagrangianConstraint.cpp b/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/BilateralLagrangianConstraint.cpp index 5f694d58dd0..a1f07d3db8c 100644 --- a/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/BilateralLagrangianConstraint.cpp +++ b/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/BilateralLagrangianConstraint.cpp @@ -58,8 +58,8 @@ class BilateralLagrangianConstraintSpecialization const unsigned minp = std::min(m1Indices.size(),m2Indices.size()); - const DataVecCoord_t &d_x1 = *self.mstate1->read(core::ConstVecCoordId::position()); - const DataVecCoord_t &d_x2 = *self.mstate2->read(core::ConstVecCoordId::position()); + const DataVecCoord_t &d_x1 = *self.mstate1->read(core::vec_id::read_access::position); + const DataVecCoord_t &d_x2 = *self.mstate2->read(core::vec_id::read_access::position); const VecCoord_t &x1 = d_x1.getValue(); const VecCoord_t &x2 = d_x2.getValue(); diff --git a/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/BilateralLagrangianConstraint.inl b/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/BilateralLagrangianConstraint.inl index a486df45ecd..28e5ddd9d19 100644 --- a/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/BilateralLagrangianConstraint.inl +++ b/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/BilateralLagrangianConstraint.inl @@ -298,8 +298,8 @@ void BilateralLagrangianConstraint::addContact(Deriv norm, Coord P, C long id, PersistentID localid) { addContact(norm, P, Q, contactDistance, m1, m2, - this->getMState2()->read(ConstVecCoordId::freePosition())->getValue()[m2], - this->getMState1()->read(ConstVecCoordId::freePosition())->getValue()[m1], + this->getMState2()->read(core::vec_id::read_access::freePosition)->getValue()[m2], + this->getMState1()->read(core::vec_id::read_access::freePosition)->getValue()[m1], id, localid); } @@ -308,11 +308,11 @@ void BilateralLagrangianConstraint::addContact(Deriv norm, Real conta int m1, int m2, long id, PersistentID localid) { addContact(norm, - this->getMState2()->read(ConstVecCoordId::position())->getValue()[m2], - this->getMState1()->read(ConstVecCoordId::position())->getValue()[m1], + this->getMState2()->read(core::vec_id::read_access::position)->getValue()[m2], + this->getMState1()->read(core::vec_id::read_access::position)->getValue()[m1], contactDistance, m1, m2, - this->getMState2()->read(ConstVecCoordId::freePosition())->getValue()[m2], - this->getMState1()->read(ConstVecCoordId::freePosition())->getValue()[m1], + this->getMState2()->read(core::vec_id::read_access::freePosition)->getValue()[m2], + this->getMState1()->read(core::vec_id::read_access::freePosition)->getValue()[m1], id, localid); } @@ -393,8 +393,8 @@ void BilateralLagrangianConstraint::draw(const core::visual::VisualPa std::vector< sofa::type::Vec3 > vertices; const unsigned minp = std::min(d_m1.getValue().size(), d_m2.getValue().size()); - auto positionsM1 = sofa::helper::getReadAccessor(*this->mstate1->read(ConstVecCoordId::position())); - auto positionsM2 = sofa::helper::getReadAccessor(*this->mstate2->read(ConstVecCoordId::position())); + auto positionsM1 = sofa::helper::getReadAccessor(*this->mstate1->read(core::vec_id::read_access::position)); + auto positionsM2 = sofa::helper::getReadAccessor(*this->mstate2->read(core::vec_id::read_access::position)); const auto indicesM1 = sofa::helper::getReadAccessor(d_m1); const auto indicesM2 = sofa::helper::getReadAccessor(d_m2); diff --git a/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/SlidingLagrangianConstraint.inl b/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/SlidingLagrangianConstraint.inl index 50d02d65705..cf25b9e4292 100644 --- a/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/SlidingLagrangianConstraint.inl +++ b/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/SlidingLagrangianConstraint.inl @@ -218,14 +218,14 @@ void SlidingLagrangianConstraint::draw(const core::visual::VisualPara color = sofa::type::RGBAColor::magenta(); std::vector vertices; - vertices.push_back(DataTypes::getCPos((this->mstate1->read(core::ConstVecCoordId::position())->getValue())[d_m1.getValue()])); + vertices.push_back(DataTypes::getCPos((this->mstate1->read(core::vec_id::read_access::position)->getValue())[d_m1.getValue()])); vparams->drawTool()->drawPoints(vertices, 10, color); vertices.clear(); color = sofa::type::RGBAColor::blue(); - vertices.push_back(DataTypes::getCPos((this->mstate2->read(core::ConstVecCoordId::position())->getValue())[d_m2a.getValue()])); - vertices.push_back(DataTypes::getCPos((this->mstate2->read(core::ConstVecCoordId::position())->getValue())[d_m2b.getValue()])); + vertices.push_back(DataTypes::getCPos((this->mstate2->read(core::vec_id::read_access::position)->getValue())[d_m2a.getValue()])); + vertices.push_back(DataTypes::getCPos((this->mstate2->read(core::vec_id::read_access::position)->getValue())[d_m2b.getValue()])); vparams->drawTool()->drawLines(vertices, 1, color); diff --git a/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/StopperLagrangianConstraint.inl b/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/StopperLagrangianConstraint.inl index 1c4dd4629ba..2b67230da86 100644 --- a/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/StopperLagrangianConstraint.inl +++ b/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/StopperLagrangianConstraint.inl @@ -46,7 +46,7 @@ void StopperLagrangianConstraint::init() this->mstate = dynamic_cast(this->getContext()->getMechanicalState()); assert(this->mstate); - helper::WriteAccessor > xData = *this->mstate->write(core::VecCoordId::position()); + helper::WriteAccessor > xData = *this->mstate->write(core::vec_id::write_access::position); VecCoord& x = xData.wref(); if (x[d_index.getValue()].x() < d_min.getValue()) x[d_index.getValue()].x() = (Real) d_min.getValue(); diff --git a/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/UnilateralLagrangianConstraint.inl b/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/UnilateralLagrangianConstraint.inl index 5112e0b46cc..a24d49ce910 100644 --- a/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/UnilateralLagrangianConstraint.inl +++ b/Sofa/Component/Constraint/Lagrangian/Model/src/sofa/component/constraint/lagrangian/model/UnilateralLagrangianConstraint.inl @@ -58,8 +58,8 @@ template void UnilateralLagrangianConstraint::addContact(SReal mu, Deriv norm, Coord P, Coord Q, Real contactDistance, int m1, int m2, long id, PersistentID localid) { addContact(mu, norm, P, Q, contactDistance, m1, m2, - this->getMState2()->read(core::ConstVecCoordId::freePosition())->getValue()[m2], - this->getMState1()->read(core::ConstVecCoordId::freePosition())->getValue()[m1], + this->getMState2()->read(core::vec_id::read_access::freePosition)->getValue()[m2], + this->getMState1()->read(core::vec_id::read_access::freePosition)->getValue()[m1], id, localid); } @@ -67,11 +67,11 @@ template void UnilateralLagrangianConstraint::addContact(SReal mu, Deriv norm, Real contactDistance, int m1, int m2, long id, PersistentID localid) { addContact(mu, norm, - this->getMState2()->read(core::ConstVecCoordId::position())->getValue()[m2], - this->getMState1()->read(core::ConstVecCoordId::position())->getValue()[m1], + this->getMState2()->read(core::vec_id::read_access::position)->getValue()[m2], + this->getMState1()->read(core::vec_id::read_access::position)->getValue()[m1], contactDistance, m1, m2, - this->getMState2()->read(core::ConstVecCoordId::freePosition())->getValue()[m2], - this->getMState1()->read(core::ConstVecCoordId::freePosition())->getValue()[m1], + this->getMState2()->read(core::vec_id::read_access::freePosition)->getValue()[m2], + this->getMState1()->read(core::vec_id::read_access::freePosition)->getValue()[m1], id, localid); } @@ -179,8 +179,8 @@ void UnilateralLagrangianConstraint::buildConstraintMatrix(const core template void UnilateralLagrangianConstraint::getPositionViolation(linearalgebra::BaseVector *v) { - const VecCoord &PfreeVec = this->getMState2()->read(core::ConstVecCoordId::freePosition())->getValue(); - const VecCoord &QfreeVec = this->getMState1()->read(core::ConstVecCoordId::freePosition())->getValue(); + const VecCoord &PfreeVec = this->getMState2()->read(core::vec_id::read_access::freePosition)->getValue(); + const VecCoord &QfreeVec = this->getMState1()->read(core::vec_id::read_access::freePosition)->getValue(); Real dfree = (Real)0.0; Real dfree_t = (Real)0.0; @@ -265,8 +265,8 @@ void UnilateralLagrangianConstraint::getVelocityViolation(linearalgeb const SReal dt = this->getContext()->getDt(); const SReal invDt = SReal(1.0) / dt; - const VecDeriv &PvfreeVec = this->getMState2()->read(core::ConstVecDerivId::freeVelocity())->getValue(); - const VecDeriv &QvfreeVec = this->getMState1()->read(core::ConstVecDerivId::freeVelocity())->getValue(); + const VecDeriv &PvfreeVec = this->getMState2()->read(core::vec_id::read_access::freeVelocity)->getValue(); + const VecDeriv &QvfreeVec = this->getMState1()->read(core::vec_id::read_access::freeVelocity)->getValue(); const unsigned int cSize = contacts.size(); diff --git a/Sofa/Component/Constraint/Lagrangian/Solver/src/sofa/component/constraint/lagrangian/solver/LCPConstraintSolver.cpp b/Sofa/Component/Constraint/Lagrangian/Solver/src/sofa/component/constraint/lagrangian/solver/LCPConstraintSolver.cpp index 9a938934b73..18dc8b33258 100644 --- a/Sofa/Component/Constraint/Lagrangian/Solver/src/sofa/component/constraint/lagrangian/solver/LCPConstraintSolver.cpp +++ b/Sofa/Component/Constraint/Lagrangian/Solver/src/sofa/component/constraint/lagrangian/solver/LCPConstraintSolver.cpp @@ -114,7 +114,7 @@ void LCPConstraintProblem::solveTimed(SReal tolerance, int maxIt, SReal timeout) bool LCPConstraintSolver::prepareStates(const core::ConstraintParams * /*cParams*/, MultiVecId /*res1*/, MultiVecId /*res2*/) { last_cp = current_cp; - MechanicalVOpVisitor(core::execparams::defaultInstance(), (core::VecId)core::VecDerivId::dx()).setMapped(true).execute( getContext()); //dX=0 + MechanicalVOpVisitor(core::execparams::defaultInstance(), (core::VecId)core::vec_id::write_access::dx).setMapped(true).execute( getContext()); //dX=0 msg_info() <<" propagate DXn performed - collision called" ; @@ -142,8 +142,8 @@ void LCPConstraintSolver::buildSystem() { core::ConstraintParams cparams; - cparams.setX(core::ConstVecCoordId::freePosition()); - cparams.setV(core::ConstVecDerivId::freeVelocity()); + cparams.setX(core::vec_id::read_access::freePosition); + cparams.setV(core::vec_id::read_access::freeVelocity); _numConstraints = buildConstraintMatrix(&cparams); sofa::helper::AdvancedTimer::valSet("numConstraints", _numConstraints); diff --git a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/AffineMovementProjectiveConstraint.inl b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/AffineMovementProjectiveConstraint.inl index abfdde06913..329c7cd70e9 100644 --- a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/AffineMovementProjectiveConstraint.inl +++ b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/AffineMovementProjectiveConstraint.inl @@ -300,7 +300,7 @@ template void AffineMovementProjectiveConstraint::draw(const core::visual::VisualParams* vparams) { const SetIndexArray & indices = d_indices.getValue(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); Vec3 point; if(d_drawConstrainedPoints.getValue()) diff --git a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/AttachProjectiveConstraint.cpp b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/AttachProjectiveConstraint.cpp index 6fa5cd004f7..51a9e7d71d4 100644 --- a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/AttachProjectiveConstraint.cpp +++ b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/AttachProjectiveConstraint.cpp @@ -43,7 +43,7 @@ template <> SOFA_COMPONENT_CONSTRAINT_PROJECTIVE_API void AttachProjectiveConstraint::calcRestRotations() { const SetIndexArray & indices2 = f_indices2.getValue(); - const VecCoord& x0 = this->mstate2->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x0 = this->mstate2->read(core::vec_id::read_access::restPosition)->getValue(); restRotations.resize(indices2.size()); for (unsigned int i=0; i::draw(const core::visual::VisualParam const SetIndexArray & indices1 = f_indices1.getValue(); const SetIndexArray & indices2 = f_indices2.getValue(); - const VecCoord& x1 = this->mstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& x2 = this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x1 = this->mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& x2 = this->mstate2->read(core::vec_id::read_access::position)->getValue(); constexpr sofa::type::RGBAColor color1(1,0.5,0.5,1); std::vector vertices; diff --git a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/DirectionProjectiveConstraint.inl b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/DirectionProjectiveConstraint.inl index f9435470265..465fca4cf08 100644 --- a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/DirectionProjectiveConstraint.inl +++ b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/DirectionProjectiveConstraint.inl @@ -165,7 +165,7 @@ void DirectionProjectiveConstraint::reinit() } jacobian.compress(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); const Indices &indices = d_indices.getValue(); for (const auto id : indices) { @@ -245,7 +245,7 @@ void DirectionProjectiveConstraint::draw(const core::visual::VisualPa { if (!vparams->displayFlags().getShowBehaviorModels()) return; if (!this->isActive()) return; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); diff --git a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedPlaneProjectiveConstraint.inl b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedPlaneProjectiveConstraint.inl index 49b29b03583..b6b151f6dd4 100644 --- a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedPlaneProjectiveConstraint.inl +++ b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedPlaneProjectiveConstraint.inl @@ -244,7 +244,7 @@ void FixedPlaneProjectiveConstraint::setDirection(Coord dir) template void FixedPlaneProjectiveConstraint::selectVerticesAlongPlane() { - const VecCoord& x = mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = mstate->read(core::vec_id::read_access::position)->getValue(); for(unsigned int i=0; i void FixedPlaneProjectiveConstraint::draw(const VisualParams* vparams) { if (!vparams->displayFlags().getShowBehaviorModels()) return; - const VecCoord& x = mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = mstate->read(core::vec_id::read_access::position)->getValue(); vparams->drawTool()->disableLighting(); type::vector points; diff --git a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedProjectiveConstraint.inl b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedProjectiveConstraint.inl index 7c4cb684473..1d69e6eb236 100644 --- a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedProjectiveConstraint.inl +++ b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedProjectiveConstraint.inl @@ -372,7 +372,7 @@ void FixedProjectiveConstraint::computeBBoxForIndices(const type::vec const auto drawSize = static_cast(d_drawSize.getValue()); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); for (const auto index : indices) { @@ -426,7 +426,7 @@ void FixedProjectiveConstraint::draw(const core::visual::VisualParams const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); const SetIndexArray & indices = d_indices.getValue(); if( d_drawSize.getValue() == 0) // old classical drawing by points diff --git a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedRotationProjectiveConstraint.inl b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedRotationProjectiveConstraint.inl index c9d1d036201..426c6af5030 100644 --- a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedRotationProjectiveConstraint.inl +++ b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedRotationProjectiveConstraint.inl @@ -56,7 +56,7 @@ void FixedRotationProjectiveConstraint::init() this->core::behavior::ProjectiveConstraintSet::init(); // Retrieves mechanical state - VecCoord x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + VecCoord x = this->mstate->read(core::vec_id::read_access::position)->getValue(); // Stores initial orientation for each vertex previousOrientation.resize(x.size()); diff --git a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedTranslationProjectiveConstraint.inl b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedTranslationProjectiveConstraint.inl index 308aab936b5..aa3de24dc6b 100644 --- a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedTranslationProjectiveConstraint.inl +++ b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/FixedTranslationProjectiveConstraint.inl @@ -173,7 +173,7 @@ void FixedTranslationProjectiveConstraint::draw(const core::visual::V const SetIndexArray & indices = d_indices.getValue(); if (!vparams->displayFlags().getShowBehaviorModels()) return; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); vparams->drawTool()->disableLighting(); diff --git a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/LineProjectiveConstraint.inl b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/LineProjectiveConstraint.inl index 8ee9480a42b..41f82958062 100644 --- a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/LineProjectiveConstraint.inl +++ b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/LineProjectiveConstraint.inl @@ -252,7 +252,7 @@ void LineProjectiveConstraint::draw(const core::visual::VisualParams* { if (!vparams->displayFlags().getShowBehaviorModels()) return; if (!this->isActive()) return; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); diff --git a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/LinearMovementProjectiveConstraint.inl b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/LinearMovementProjectiveConstraint.inl index 8171f82a97e..022150d3546 100644 --- a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/LinearMovementProjectiveConstraint.inl +++ b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/LinearMovementProjectiveConstraint.inl @@ -461,7 +461,7 @@ void LinearMovementProjectiveConstraint::draw(const core::visual::Vis } else { - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); sofa::type::vector points; type::Vec3 point; diff --git a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PartialLinearMovementProjectiveConstraint.inl b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PartialLinearMovementProjectiveConstraint.inl index d42c03b63de..45bbfd8d12b 100644 --- a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PartialLinearMovementProjectiveConstraint.inl +++ b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PartialLinearMovementProjectiveConstraint.inl @@ -524,7 +524,7 @@ void PartialLinearMovementProjectiveConstraint::draw(const core::visu } else { - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); type::Vec3 point; const SetIndexArray & indices = d_indices.getValue(); diff --git a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PatchTestMovementProjectiveConstraint.inl b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PatchTestMovementProjectiveConstraint.inl index 6ffdcebddbe..d3443c96a0b 100644 --- a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PatchTestMovementProjectiveConstraint.inl +++ b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PatchTestMovementProjectiveConstraint.inl @@ -431,7 +431,7 @@ template void PatchTestMovementProjectiveConstraint::draw(const core::visual::VisualParams* vparams) { const SetIndexArray & indices = d_indices.getValue(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); type::Vec3 point; if(d_drawConstrainedPoints.getValue()) diff --git a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PlaneProjectiveConstraint.inl b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PlaneProjectiveConstraint.inl index f2358f5d8b0..2f769c53f58 100644 --- a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PlaneProjectiveConstraint.inl +++ b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PlaneProjectiveConstraint.inl @@ -244,7 +244,7 @@ void PlaneProjectiveConstraint::draw(const core::visual::VisualParams { if (!vparams->displayFlags().getShowBehaviorModels()) return; if (!this->isActive()) return; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); diff --git a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PointProjectiveConstraint.inl b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PointProjectiveConstraint.inl index 05b6aa1820d..b10638a7e99 100644 --- a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PointProjectiveConstraint.inl +++ b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PointProjectiveConstraint.inl @@ -290,7 +290,7 @@ void PointProjectiveConstraint::draw(const core::visual::VisualParams { if (!vparams->displayFlags().getShowBehaviorModels()) return; if (!this->isActive()) return; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); const SetIndexArray & indices = d_indices.getValue(); const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); diff --git a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PositionBasedDynamicsProjectiveConstraint.inl b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PositionBasedDynamicsProjectiveConstraint.inl index 166da7be3e6..68166e5c2b0 100644 --- a/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PositionBasedDynamicsProjectiveConstraint.inl +++ b/Sofa/Component/Constraint/Projective/src/sofa/component/constraint/projective/PositionBasedDynamicsProjectiveConstraint.inl @@ -77,7 +77,7 @@ void PositionBasedDynamicsProjectiveConstraint::reset() std::fill(vel.begin(),vel.end(),Deriv()); helper::WriteAccessor old_pos (d_old_position ); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); old_pos.resize(x.size()); std::copy(x.begin(),x.end(),old_pos.begin()); } diff --git a/Sofa/Component/Constraint/Projective/tests/AffineMovementProjectiveConstraint_test.cpp b/Sofa/Component/Constraint/Projective/tests/AffineMovementProjectiveConstraint_test.cpp index 98be7bad2e5..d32ea2d552f 100644 --- a/Sofa/Component/Constraint/Projective/tests/AffineMovementProjectiveConstraint_test.cpp +++ b/Sofa/Component/Constraint/Projective/tests/AffineMovementProjectiveConstraint_test.cpp @@ -132,7 +132,7 @@ struct AffineMovementProjectiveConstraint_test : public BaseSimulationTest, Nume // Compute the theoretical final positions VecCoord finalPos; - patchStruct.affineConstraint->getFinalPositions( finalPos,*patchStruct.dofs->write(core::VecCoordId::position()) ); + patchStruct.affineConstraint->getFinalPositions( finalPos,*patchStruct.dofs->write(core::vec_id::write_access::position) ); // Initialize diff --git a/Sofa/Component/Constraint/Projective/tests/DirectionProjectiveConstraint_test.cpp b/Sofa/Component/Constraint/Projective/tests/DirectionProjectiveConstraint_test.cpp index e4663da89ac..39e6f6b3ee3 100644 --- a/Sofa/Component/Constraint/Projective/tests/DirectionProjectiveConstraint_test.cpp +++ b/Sofa/Component/Constraint/Projective/tests/DirectionProjectiveConstraint_test.cpp @@ -137,12 +137,12 @@ struct DirectionProjectiveConstraint_test : public BaseSimulationTest, NumericTe xprev[i] = x[i] = CPos(i,0,0); } - projection->projectPosition(core::mechanicalparams::defaultInstance(), *dofs->write(core::VecCoordId::position()) ); + projection->projectPosition(core::mechanicalparams::defaultInstance(), *dofs->write(core::vec_id::write_access::position) ); type::vector m_origin; // particle original position - const VecCoord& xOrigin = projection->getMState()->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& xOrigin = projection->getMState()->read(core::vec_id::read_access::position)->getValue(); for( typename Indices::const_iterator it = indices.begin() ; it != indices.end() ; ++it ) { m_origin.push_back( DataTypes::getCPos(xOrigin[*it]) ); @@ -188,7 +188,7 @@ struct DirectionProjectiveConstraint_test : public BaseSimulationTest, NumericTe vprev[i] = v[i] = CPos(i,0,0); } - projection->projectVelocity(core::mechanicalparams::defaultInstance(), *dofs->write(core::VecDerivId::velocity()) ); + projection->projectVelocity(core::mechanicalparams::defaultInstance(), *dofs->write(core::vec_id::write_access::velocity) ); bool succeed=true; typename Indices::const_iterator it = indices.begin(); // must be sorted diff --git a/Sofa/Component/Constraint/Projective/tests/LineProjectiveConstraint_test.cpp b/Sofa/Component/Constraint/Projective/tests/LineProjectiveConstraint_test.cpp index 61a72af32ff..37f7d55f030 100644 --- a/Sofa/Component/Constraint/Projective/tests/LineProjectiveConstraint_test.cpp +++ b/Sofa/Component/Constraint/Projective/tests/LineProjectiveConstraint_test.cpp @@ -137,7 +137,7 @@ const PointSetTopologyContainer::SPtr topology = core::objectmodel::NewprojectPosition(core::mechanicalparams::defaultInstance(), *dofs->write(core::VecCoordId::position()) ); + projection->projectPosition(core::mechanicalparams::defaultInstance(), *dofs->write(core::vec_id::write_access::position) ); bool succeed=true; typename Indices::const_iterator it = indices.begin(); // must be sorted @@ -174,7 +174,7 @@ const PointSetTopologyContainer::SPtr topology = core::objectmodel::NewprojectVelocity(core::mechanicalparams::defaultInstance(), *dofs->write(core::VecDerivId::velocity()) ); + projection->projectVelocity(core::mechanicalparams::defaultInstance(), *dofs->write(core::vec_id::write_access::velocity) ); bool succeed=true; typename Indices::const_iterator it = indices.begin(); // must be sorted diff --git a/Sofa/Component/Constraint/Projective/tests/PlaneProjectiveConstraint_test.cpp b/Sofa/Component/Constraint/Projective/tests/PlaneProjectiveConstraint_test.cpp index 05be6be816f..cbaef8f4975 100644 --- a/Sofa/Component/Constraint/Projective/tests/PlaneProjectiveConstraint_test.cpp +++ b/Sofa/Component/Constraint/Projective/tests/PlaneProjectiveConstraint_test.cpp @@ -138,7 +138,7 @@ const PointSetTopologyContainer::SPtr topology = core::objectmodel::NewprojectPosition(core::mechanicalparams::defaultInstance(), *dofs->write(core::VecCoordId::position()) ); + projection->projectPosition(core::mechanicalparams::defaultInstance(), *dofs->write(core::vec_id::write_access::position) ); bool succeed=true; typename Indices::const_iterator it = indices.begin(); // must be sorted @@ -174,7 +174,7 @@ const PointSetTopologyContainer::SPtr topology = core::objectmodel::NewprojectVelocity(core::mechanicalparams::defaultInstance(), *dofs->write(core::VecDerivId::velocity()) ); + projection->projectVelocity(core::mechanicalparams::defaultInstance(), *dofs->write(core::vec_id::write_access::velocity) ); bool succeed=true; typename Indices::const_iterator it = indices.begin(); // must be sorted diff --git a/Sofa/Component/Constraint/Projective/tests/PointProjectiveConstraint_test.cpp b/Sofa/Component/Constraint/Projective/tests/PointProjectiveConstraint_test.cpp index 5151e9f7f29..2efc25e1e0b 100644 --- a/Sofa/Component/Constraint/Projective/tests/PointProjectiveConstraint_test.cpp +++ b/Sofa/Component/Constraint/Projective/tests/PointProjectiveConstraint_test.cpp @@ -138,7 +138,7 @@ struct PointProjectiveConstraint_test : public BaseSimulationTest, NumericTestprojectPosition(core::mechanicalparams::defaultInstance(), *dofs->write(core::VecCoordId::position()) ); + projection->projectPosition(core::mechanicalparams::defaultInstance(), *dofs->write(core::vec_id::write_access::position) ); bool succeed=true; typename Indices::const_iterator it = indices.begin(); // must be sorted @@ -177,7 +177,7 @@ struct PointProjectiveConstraint_test : public BaseSimulationTest, NumericTestprojectVelocity(core::mechanicalparams::defaultInstance(), *dofs->write(core::VecDerivId::velocity()) ); + projection->projectVelocity(core::mechanicalparams::defaultInstance(), *dofs->write(core::vec_id::write_access::velocity) ); bool succeed=true; typename Indices::const_iterator it = indices.begin(); // must be sorted diff --git a/Sofa/Component/Controller/src/sofa/component/controller/MechanicalStateController.cpp b/Sofa/Component/Controller/src/sofa/component/controller/MechanicalStateController.cpp index 859519b4baa..756a76e7a5a 100644 --- a/Sofa/Component/Controller/src/sofa/component/controller/MechanicalStateController.cpp +++ b/Sofa/Component/Controller/src/sofa/component/controller/MechanicalStateController.cpp @@ -40,7 +40,7 @@ void MechanicalStateController::applyController() if(mState) { - helper::WriteAccessor > x0 = *mState->write(sofa::core::VecCoordId::restPosition()); + helper::WriteAccessor > x0 = *mState->write(sofa::core::vec_id::write_access::restPosition); if(buttonDevice) { if (x0[0].x() < -0.1) //angle de fermeture max @@ -75,7 +75,7 @@ void MechanicalStateController::applyController() {*/ if (mState) { - helper::WriteAccessor > x0 = *mState->write(sofa::core::VecCoordId::restPosition()); + helper::WriteAccessor > x0 = *mState->write(sofa::core::vec_id::write_access::restPosition); if (mouseMode==BtMiddle) { x0[0].x() = -0.4; diff --git a/Sofa/Component/Controller/src/sofa/component/controller/MechanicalStateController.inl b/Sofa/Component/Controller/src/sofa/component/controller/MechanicalStateController.inl index cba22b74845..ebfea8ee9b9 100644 --- a/Sofa/Component/Controller/src/sofa/component/controller/MechanicalStateController.inl +++ b/Sofa/Component/Controller/src/sofa/component/controller/MechanicalStateController.inl @@ -80,8 +80,8 @@ void MechanicalStateController::applyController() if(mState) { { - helper::WriteAccessor > x = *this->mState->write(core::VecCoordId::position()); - helper::WriteAccessor > xfree = *this->mState->write(core::VecCoordId::freePosition()); + helper::WriteAccessor > x = *this->mState->write(core::vec_id::write_access::position); + helper::WriteAccessor > xfree = *this->mState->write(core::vec_id::write_access::freePosition); xfree[0].getCenter() = position; x[0].getCenter() = position; @@ -101,9 +101,9 @@ void MechanicalStateController::applyController() if (mState) { - helper::WriteAccessor > x = *this->mState->write(core::VecCoordId::position()); - mState->vRealloc( sofa::core::mechanicalparams::defaultInstance(), core::VecCoordId::freePosition() ); // freePosition is not allocated by default - helper::WriteAccessor > xfree = *this->mState->write(core::VecCoordId::freePosition()); + helper::WriteAccessor > x = *this->mState->write(core::vec_id::write_access::position); + mState->vRealloc( sofa::core::mechanicalparams::defaultInstance(), core::vec_id::write_access::freePosition ); // freePosition is not allocated by default + helper::WriteAccessor > xfree = *this->mState->write(core::vec_id::write_access::freePosition); unsigned int i = d_index.getValue(); @@ -144,7 +144,7 @@ void MechanicalStateController::applyController() if (mState) { - helper::WriteAccessor > x = *this->mState->write(core::VecCoordId::position()); + helper::WriteAccessor > x = *this->mState->write(core::vec_id::write_access::position); unsigned int i = d_index.getValue(); diff --git a/Sofa/Component/Diffusion/src/sofa/component/diffusion/TetrahedronDiffusionFEMForceField.inl b/Sofa/Component/Diffusion/src/sofa/component/diffusion/TetrahedronDiffusionFEMForceField.inl index add06886150..341bbb7c0f3 100644 --- a/Sofa/Component/Diffusion/src/sofa/component/diffusion/TetrahedronDiffusionFEMForceField.inl +++ b/Sofa/Component/Diffusion/src/sofa/component/diffusion/TetrahedronDiffusionFEMForceField.inl @@ -53,7 +53,7 @@ void TetrahedronDiffusionFEMForceField::computeEdgeDiffusionCoefficie edgeDiffusionCoefficient[i] = 0; nbTetra = m_topology->getNbTetrahedra(); - const typename TetrahedronDiffusionFEMForceField::MechanicalTypes::VecCoord position = this->mechanicalObject->read(core::ConstVecCoordId::position())->getValue(); + const typename TetrahedronDiffusionFEMForceField::MechanicalTypes::VecCoord position = this->mechanicalObject->read(core::vec_id::read_access::position)->getValue(); typename DataTypes::Real anisotropyRatio = this->d_transverseAnisotropyRatio.getValue(); const bool isotropicDiffusion = (anisotropyRatio == 1.0); @@ -431,7 +431,7 @@ void TetrahedronDiffusionFEMForceField::draw(const core::visual::Visu if (d_drawConduc.getValue()) { const typename TetrahedronDiffusionFEMForceField::MechanicalTypes::VecCoord restPosition = - this->mechanicalObject->read(core::ConstVecCoordId::restPosition())->getValue(); + this->mechanicalObject->read(core::vec_id::read_access::restPosition)->getValue(); vparams->drawTool()->setLightingEnabled(false); const auto nbr = m_topology->getNbTriangles(); diff --git a/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/AverageCoord.h b/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/AverageCoord.h index 930f5f7852c..a0bdae2ebd7 100644 --- a/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/AverageCoord.h +++ b/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/AverageCoord.h @@ -60,7 +60,7 @@ class AverageCoord : public core::DataEngine, public core::behavior::SingleState void doUpdate() override; Data d_indices; ///< indices of the coordinates to average - Data d_vecId; ///< index of the vector (default value corresponds to core::VecCoordId::position() ) + Data d_vecId; ///< index of the vector (default value corresponds to core::vec_id::write_access::position ) Data d_average; ///< result void handleEvent(core::objectmodel::Event *event) override; diff --git a/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/AverageCoord.inl b/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/AverageCoord.inl index 077573f935e..2dda46abdb9 100644 --- a/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/AverageCoord.inl +++ b/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/AverageCoord.inl @@ -32,7 +32,7 @@ namespace sofa::component::engine::analyze template AverageCoord::AverageCoord() : d_indices( initData (&d_indices, "indices", "indices of the coordinates to average") ) - , d_vecId(initData (&d_vecId, sofa::core::VecCoordId::position().getIndex(), "vecId", "index of the vector (default value corresponds to core::VecCoordId::position() )") ) + , d_vecId(initData (&d_vecId, sofa::core::vec_id::write_access::position.getIndex(), "vecId", "index of the vector (default value corresponds to core::vec_id::write_access::position )") ) , d_average( initData (&d_average, "average", "average of the values with the given indices in the given coordinate vector \n" "(default value corresponds to the average coord of the mechanical context)") ) { diff --git a/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/ClusteringEngine.inl b/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/ClusteringEngine.inl index 347e2887eb3..acae20f8459 100644 --- a/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/ClusteringEngine.inl +++ b/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/ClusteringEngine.inl @@ -383,7 +383,7 @@ void ClusteringEngine::draw(const core::visual::VisualParams* vparams const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); - const VecCoord& currentPositions = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& currentPositions = this->mstate->read(core::vec_id::read_access::position)->getValue(); const ReadAccessor< Data< VVI > > clust = this->d_cluster; const unsigned int nbp = currentPositions.size(); diff --git a/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/Distances.inl b/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/Distances.inl index b0d4ab07903..abdae6d419e 100644 --- a/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/Distances.inl +++ b/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/Distances.inl @@ -111,8 +111,8 @@ void Distances< DataTypes >::init() unsigned int realSize = 0; const unsigned int step = d_initTargetStep.getValue(); target->resize( size); - helper::WriteAccessor< Data< VecCoord > > xto = *target->write(core::VecCoordId::position()); - helper::WriteAccessor< Data< VecCoord > > xto0 = *target->write(core::VecCoordId::restPosition()); + helper::WriteAccessor< Data< VecCoord > > xto = *target->write(core::vec_id::write_access::position); + helper::WriteAccessor< Data< VecCoord > > xto0 = *target->write(core::vec_id::write_access::restPosition); const Coord& offSet = d_offset.getValue(); const type::Vec3& voxelSize = hexaContainer->d_voxelSize.getValue(); for ( unsigned int i = 0; i < size; i++) diff --git a/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/ShapeMatching.inl b/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/ShapeMatching.inl index 7927d631fd0..19f9aa5685a 100644 --- a/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/ShapeMatching.inl +++ b/Sofa/Component/Engine/Analyze/src/sofa/component/engine/analyze/ShapeMatching.inl @@ -114,7 +114,7 @@ void ShapeMatching::doUpdate() if (!this->mstate) return; - const auto* restPositionsData = this->mstate->read(core::ConstVecCoordId::restPosition()); + const auto* restPositionsData = this->mstate->read(core::vec_id::read_access::restPosition); if (!restPositionsData) { msg_error() << "Rest position cannot be found in mechanical object '" << this->mstate->getPathName() << "'"; diff --git a/Sofa/Component/Engine/Select/src/sofa/component/engine/select/NearestPointROI.inl b/Sofa/Component/Engine/Select/src/sofa/component/engine/select/NearestPointROI.inl index 9f8ab2b0784..295a5ff0cb8 100644 --- a/Sofa/Component/Engine/Select/src/sofa/component/engine/select/NearestPointROI.inl +++ b/Sofa/Component/Engine/Select/src/sofa/component/engine/select/NearestPointROI.inl @@ -104,7 +104,7 @@ void NearestPointROI::doUpdate() { if (this->mstate1 && this->mstate2) { - const auto vecCoordId = d_useRestPosition.getValue() ? core::ConstVecCoordId::restPosition() : core::ConstVecCoordId::position(); + const auto vecCoordId = d_useRestPosition.getValue() ? core::vec_id::read_access::restPosition : core::vec_id::read_access::position; const VecCoord& x1 = this->mstate1->read(vecCoordId)->getValue(); const VecCoord& x2 = this->mstate2->read(vecCoordId)->getValue(); @@ -204,7 +204,7 @@ void NearestPointROI::draw(const core::visual::VisualParams* vparams) const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); - const auto vecCoordId = d_useRestPosition.getValue() ? core::ConstVecCoordId::restPosition() : core::ConstVecCoordId::position(); + const auto vecCoordId = d_useRestPosition.getValue() ? core::vec_id::read_access::restPosition : core::vec_id::read_access::position; const VecCoord& x1 = this->mstate1->read(vecCoordId)->getValue(); const VecCoord& x2 = this->mstate2->read(vecCoordId)->getValue(); std::vector vertices; diff --git a/Sofa/Component/Haptics/src/sofa/component/haptics/LCPForceFeedback.inl b/Sofa/Component/Haptics/src/sofa/component/haptics/LCPForceFeedback.inl index 9752b668cd3..03d2d500373 100644 --- a/Sofa/Component/Haptics/src/sofa/component/haptics/LCPForceFeedback.inl +++ b/Sofa/Component/Haptics/src/sofa/component/haptics/LCPForceFeedback.inl @@ -371,13 +371,13 @@ void LCPForceFeedback::handleEvent(sofa::core::objectmodel::Event *ev mCP[buf_index] = new_cp; // Update Val - val = mState->read(sofa::core::VecCoordId::freePosition())->getValue(); + val = mState->read(sofa::core::vec_id::write_access::freePosition)->getValue(); // Update constraints and id_buf constraints.clear(); // id_buf.clear(); - const MatrixDeriv& c = mState->read(core::ConstMatrixDerivId::constraintJacobian())->getValue() ; + const MatrixDeriv& c = mState->read(core::vec_id::read_access::constraintJacobian)->getValue() ; MatrixDerivRowConstIterator rowItEnd = c.end(); diff --git a/Sofa/Component/IO/Mesh/src/sofa/component/io/mesh/BlenderExporter.inl b/Sofa/Component/IO/Mesh/src/sofa/component/io/mesh/BlenderExporter.inl index 4193ca763fb..2f91eea5b94 100644 --- a/Sofa/Component/IO/Mesh/src/sofa/component/io/mesh/BlenderExporter.inl +++ b/Sofa/Component/IO/Mesh/src/sofa/component/io/mesh/BlenderExporter.inl @@ -184,7 +184,7 @@ void BlenderExporter::handleEvent(sofa::core::objectmodel::Event* event) pos[2] = (float)x[2]; Deriv v; - if((mmodel->read(core::ConstVecDerivId::velocity())) && ((int) mmodel->readVelocities().size()>i)) + if((mmodel->read(core::vec_id::read_access::velocity)) && ((int) mmodel->readVelocities().size()>i)) { v =mmodel->readVelocities()[i]; vel[0] = (float)v[0]; @@ -193,7 +193,7 @@ void BlenderExporter::handleEvent(sofa::core::objectmodel::Event* event) } Coord x0; - if((mmodel->read(core::ConstVecCoordId::restPosition())) && ( (int)mmodel->readRestPositions().size()>i)) + if((mmodel->read(core::vec_id::read_access::restPosition)) && ( (int)mmodel->readRestPositions().size()>i)) { x0 =mmodel->readRestPositions()[i]; rest[0] = (float)x0[0]; diff --git a/Sofa/Component/LinearSolver/Iterative/src/sofa/component/linearsolver/iterative/MatrixLinearSolver.inl b/Sofa/Component/LinearSolver/Iterative/src/sofa/component/linearsolver/iterative/MatrixLinearSolver.inl index c3429b4b1ae..e1b38680ddb 100644 --- a/Sofa/Component/LinearSolver/Iterative/src/sofa/component/linearsolver/iterative/MatrixLinearSolver.inl +++ b/Sofa/Component/LinearSolver/Iterative/src/sofa/component/linearsolver/iterative/MatrixLinearSolver.inl @@ -615,7 +615,7 @@ void MatrixLinearSolver::computeResidual(const core::ExecParams* internalData.projectForceInConstraintSpace(getSystemRHVector(), f); sofa::simulation::common::VectorOperations vop( params, this->getContext() ); - sofa::core::behavior::MultiVecDeriv force(&vop, core::VecDerivId::force() ); + sofa::core::behavior::MultiVecDeriv force(&vop, core::vec_id::write_access::force ); executeVisitor( MechanicalMultiVectorPeqBaseVectorVisitor(core::execparams::defaultInstance(), force, getSystemRHVector(), &(linearSystem.matrixAccessor)) ); } diff --git a/Sofa/Component/LinearSolver/Preconditioner/src/sofa/component/linearsolver/preconditioner/PrecomputedWarpPreconditioner.inl b/Sofa/Component/LinearSolver/Preconditioner/src/sofa/component/linearsolver/preconditioner/PrecomputedWarpPreconditioner.inl index abc665cfd0d..1f75138d49b 100644 --- a/Sofa/Component/LinearSolver/Preconditioner/src/sofa/component/linearsolver/preconditioner/PrecomputedWarpPreconditioner.inl +++ b/Sofa/Component/LinearSolver/Preconditioner/src/sofa/component/linearsolver/preconditioner/PrecomputedWarpPreconditioner.inl @@ -328,8 +328,8 @@ void PrecomputedWarpPreconditioner::loadMatrixWithSolver() msg_error() << "PrecomputedContactCorrection must be associated with EulerImplicitSolver+LinearSolver for the precomputation\nNo Precomputation"; return; } - sofa::core::VecDerivId lhId = core::VecDerivId::velocity(); - sofa::core::VecDerivId rhId = core::VecDerivId::force(); + sofa::core::VecDerivId lhId = core::vec_id::write_access::velocity; + sofa::core::VecDerivId rhId = core::vec_id::write_access::force; mstate->vAvail(core::execparams::defaultInstance(), lhId); @@ -347,7 +347,7 @@ void PrecomputedWarpPreconditioner::loadMatrixWithSolver() linearSolver->setSystemMBKMatrix(&mparams); } - helper::WriteAccessor > dataForce = *mstate->write(core::VecDerivId::externalForce()); + helper::WriteAccessor > dataForce = *mstate->write(core::vec_id::write_access::externalForce); VecDeriv& force = dataForce.wref(); force.clear(); @@ -367,11 +367,11 @@ void PrecomputedWarpPreconditioner::loadMatrixWithSolver() } /////////////////////////////////////////////////////////////////////////////////////////////// - helper::WriteAccessor > dataVelocity = *mstate->write(core::VecDerivId::velocity()); + helper::WriteAccessor > dataVelocity = *mstate->write(core::vec_id::write_access::velocity); VecDeriv& velocity = dataVelocity.wref(); VecDeriv velocity0 = velocity; - helper::WriteAccessor > posData = *mstate->write(core::VecCoordId::position()); + helper::WriteAccessor > posData = *mstate->write(core::vec_id::write_access::position); VecCoord& pos = posData.wref(); VecCoord pos0 = pos; @@ -669,7 +669,7 @@ void PrecomputedWarpPreconditioner::draw(const core::visual::VisualP const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); - const VecCoord& x = mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = mstate->read(core::vec_id::read_access::position)->getValue(); const Real& scale = this->d_draw_rotations_scale.getValue(); for (unsigned int i=0; i< nb_dofs; i++) diff --git a/Sofa/Component/LinearSystem/src/sofa/component/linearsystem/MatrixProjectionMethod.inl b/Sofa/Component/LinearSystem/src/sofa/component/linearsystem/MatrixProjectionMethod.inl index a6557e20e0c..64752acc6a3 100644 --- a/Sofa/Component/LinearSystem/src/sofa/component/linearsystem/MatrixProjectionMethod.inl +++ b/Sofa/Component/LinearSystem/src/sofa/component/linearsystem/MatrixProjectionMethod.inl @@ -275,7 +275,7 @@ MappingJacobians MatrixProjectionMethod::computeJacobiansFrom( return jacobians; } - auto mappingJacobianId = sofa::core::MatrixDerivId::mappingJacobian(); + auto mappingJacobianId = sofa::core::vec_id::write_access::mappingJacobian; // this clears the matrix identified by mappingJacobian() among others simulation::mechanicalvisitor::MechanicalResetConstraintVisitor(&cparams).execute(this->getSolveContext()); diff --git a/Sofa/Component/LinearSystem/tests/MatrixLinearSystem_test.cpp b/Sofa/Component/LinearSystem/tests/MatrixLinearSystem_test.cpp index 4aa38d0fa77..c8163bfdb3d 100644 --- a/Sofa/Component/LinearSystem/tests/MatrixLinearSystem_test.cpp +++ b/Sofa/Component/LinearSystem/tests/MatrixLinearSystem_test.cpp @@ -136,7 +136,7 @@ TEST(LinearSystem, MatrixSystem_springForceField) // Compute the external force. This step is mandatory because most of the time force fields // pre-computes required elements for the matrix assembly in the addForce method - sofa::core::MultiVecDerivId ffId = sofa::core::VecDerivId::externalForce(); + sofa::core::MultiVecDerivId ffId = sofa::core::vec_id::write_access::externalForce; ((sofa::core::behavior::BaseForceField*)spring.get())->addForce(&mparams, ffId); diff --git a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMappers/BarycentricMapperHexahedronSetTopology.inl b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMappers/BarycentricMapperHexahedronSetTopology.inl index 409b029bf3f..d62d268efec 100644 --- a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMappers/BarycentricMapperHexahedronSetTopology.inl +++ b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMappers/BarycentricMapperHexahedronSetTopology.inl @@ -197,7 +197,7 @@ void BarycentricMapperHexahedronSetTopology::handleTopologyChange(core:: typedef MechanicalState InMechanicalStateT; InMechanicalStateT* inState; this->m_fromTopology->getContext()->get(inState); - const auto& inRestPos = (inState->read(core::ConstVecCoordId::restPosition())->getValue()); + const auto& inRestPos = (inState->read(core::vec_id::read_access::restPosition)->getValue()); if( this->m_toTopology) { typedef MechanicalState MechanicalStateT; @@ -209,7 +209,7 @@ void BarycentricMapperHexahedronSetTopology::handleTopologyChange(core:: } else { - const typename MechanicalStateT::VecCoord& outXto0 = (mState->read(core::ConstVecCoordId::restPosition())->getValue()); + const typename MechanicalStateT::VecCoord& outXto0 = (mState->read(core::vec_id::read_access::restPosition)->getValue()); const decltype(inRestPos[0])& outRestPos = Out::getCPos(outXto0[j]); //decltype stuff is to force the same type of coordinates between in and out index = sofa::topology::getClosestHexahedronIndex(inRestPos, m_fromTopology->getHexahedra(), outRestPos, coefs, distance); } @@ -256,7 +256,7 @@ void BarycentricMapperHexahedronSetTopology::handleTopologyChange(core:: typedef MechanicalState InMechanicalStateT; InMechanicalStateT* inState; this->m_fromTopology->getContext()->get(inState); - const auto& inRestPos = (inState->read(core::ConstVecCoordId::restPosition())->getValue()); + const auto& inRestPos = (inState->read(core::vec_id::read_access::restPosition)->getValue()); const auto nbHexahedra = this->m_fromTopology->getNbHexahedra(); diff --git a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMapping.inl b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMapping.inl index 014cb8780a0..ef6ae436d07 100644 --- a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMapping.inl +++ b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMapping.inl @@ -283,9 +283,9 @@ void BarycentricMapping::initMapper() if (d_mapper != nullptr && this->toModel != nullptr && this->fromModel != nullptr) { if (d_useRestPosition.getValue()) - d_mapper->init (((const core::State *)this->toModel)->read(core::ConstVecCoordId::restPosition())->getValue(), ((const core::State *)this->fromModel)->read(core::ConstVecCoordId::restPosition())->getValue() ); + d_mapper->init (((const core::State *)this->toModel)->read(core::vec_id::read_access::restPosition)->getValue(), ((const core::State *)this->fromModel)->read(core::vec_id::read_access::restPosition)->getValue() ); else - d_mapper->init (((const core::State *)this->toModel)->read(core::ConstVecCoordId::position())->getValue(), ((const core::State *)this->fromModel)->read(core::ConstVecCoordId::position())->getValue() ); + d_mapper->init (((const core::State *)this->toModel)->read(core::vec_id::read_access::position)->getValue(), ((const core::State *)this->fromModel)->read(core::vec_id::read_access::position)->getValue() ); } } @@ -352,7 +352,7 @@ void BarycentricMapping::draw(const core::visual::VisualParams* vpara if (this->d_componentState.getValue() != ComponentState::Valid ) return; // Draw model (out) points - const OutVecCoord& out = this->toModel->read(core::ConstVecCoordId::position())->getValue(); + const OutVecCoord& out = this->toModel->read(core::vec_id::read_access::position)->getValue(); std::vector< Vec3 > points; for ( unsigned int i=0; i::draw(const core::visual::VisualParams* vpara vparams->drawTool()->drawPoints ( points, 7, sofa::type::RGBAColor::yellow()); // Draw mapping line between models - const InVecCoord& in = this->fromModel->read(core::ConstVecCoordId::position())->getValue(); + const InVecCoord& in = this->fromModel->read(core::vec_id::read_access::position)->getValue(); if ( d_mapper!=nullptr ) d_mapper->draw(vparams,out,in); @@ -386,8 +386,8 @@ void BarycentricMapping::handleTopologyChange ( core::topology::Topol { //forward topological modifications to the mapper if (this->d_mapper.get()){ - this->d_mapper->processTopologicalChanges(((const core::State *)this->toModel)->read(core::ConstVecCoordId::position())->getValue(), - ((const core::State *)this->fromModel)->read(core::ConstVecCoordId::position())->getValue(), + this->d_mapper->processTopologicalChanges(((const core::State *)this->toModel)->read(core::vec_id::read_access::position)->getValue(), + ((const core::State *)this->fromModel)->read(core::vec_id::read_access::position)->getValue(), t); } } diff --git a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMappingRigid.cpp b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMappingRigid.cpp index 8d71d8a7052..b6c8dafbdee 100644 --- a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMappingRigid.cpp +++ b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMappingRigid.cpp @@ -63,7 +63,7 @@ void BarycentricMapperHexahedronSetTopology InMechanicalStateT; InMechanicalStateT* inState; this->m_fromTopology->getContext()->get(inState); - const auto& inRestPos = (inState->read(core::ConstVecCoordId::restPosition())->getValue()); + const auto& inRestPos = (inState->read(core::vec_id::read_access::restPosition)->getValue()); for ( std::list::const_iterator changeIt = itBegin; changeIt != itEnd; ++changeIt ) diff --git a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMappingRigid.inl b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMappingRigid.inl index df3125fe8c8..293cc847f61 100644 --- a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMappingRigid.inl +++ b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BarycentricMappingRigid.inl @@ -276,7 +276,7 @@ void BarycentricMapperTetrahedronSetTopologyRigid::applyJT( typename In: typename core::behavior::MechanicalState* mechanicalObject; this->getContext()->get(mechanicalObject); -// const typename Out::VecCoord& pX =mechanicalObject->read(core::ConstVecCoordId::position())->getValue(); +// const typename Out::VecCoord& pX =mechanicalObject->read(core::vec_id::read_access::position)->getValue(); // TODO: use d_mapOrient //const sofa::type::vector& d_mapOrient = this->d_mapOrient.getValue(); diff --git a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BeamLinearMapping.inl b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BeamLinearMapping.inl index 8d55b8eebc3..994ebbf414d 100644 --- a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BeamLinearMapping.inl +++ b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/BeamLinearMapping.inl @@ -66,7 +66,7 @@ void BeamLinearMapping::init() const bool local = localCoord.getValue(); if (this->points.empty() && this->toModel!=nullptr) { - const typename In::VecCoord& xfrom = this->fromModel->read(core::ConstVecCoordId::position())->getValue(); + const typename In::VecCoord& xfrom = this->fromModel->read(core::vec_id::read_access::position)->getValue(); beamLength.resize(xfrom.size()); for (unsigned int i=0; i::init() if (xfrom.size()>=2) beamLength[xfrom.size()-1] = beamLength[xfrom.size()-2]; - const VecCoord& x = this->toModel->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->toModel->read(core::vec_id::read_access::position)->getValue(); msg_info() << "BeamLinearMapping: init "<::applyJT(const core::ConstraintParams * /*cpar typename In::MatrixDeriv* out = _out.beginEdit(); const typename Out::MatrixDeriv& in = _in.getValue(); - const typename In::VecCoord& x = this->fromModel->read(core::ConstVecCoordId::position())->getValue(); + const typename In::VecCoord& x = this->fromModel->read(core::vec_id::read_access::position)->getValue(); typename Out::MatrixDeriv::RowConstIterator rowItEnd = in.end(); @@ -265,7 +265,7 @@ void BeamLinearMapping::draw(const core::visual::VisualParams* vparam std::vector< sofa::type::Vec3 > points; sofa::type::Vec3 point; - const typename Out::VecCoord& x = this->toModel->read(core::ConstVecCoordId::position())->getValue(); + const typename Out::VecCoord& x = this->toModel->read(core::vec_id::read_access::position)->getValue(); for (unsigned int i=0; i::draw(const core::visual::VisualParams* vpar const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); - const typename Out::VecCoord &X = this->toModel->read(core::ConstVecCoordId::position())->getValue(); + const typename Out::VecCoord &X = this->toModel->read(core::vec_id::read_access::position)->getValue(); std::vector< sofa::type::Vec3 > points; sofa::type::Vec3 point1,point2; diff --git a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/CenterOfMassMulti2Mapping.inl b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/CenterOfMassMulti2Mapping.inl index f8de8d20f52..164c5d8b7e8 100644 --- a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/CenterOfMassMulti2Mapping.inl +++ b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/CenterOfMassMulti2Mapping.inl @@ -268,7 +268,7 @@ template void CenterOfMassMulti2Mapping< TIn1, TIn2, TOut >::draw(const core::visual::VisualParams* vparams) { assert( this->toModels.size() == 1 ); - const Data< OutVecCoord > *X = this->getToModels()[0]->read(sofa::core::VecCoordId::position()); + const Data< OutVecCoord > *X = this->getToModels()[0]->read(sofa::core::vec_id::write_access::position); std::vector< sofa::type::Vec3 > points; sofa::type::Vec3 point1,point2; diff --git a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/CenterOfMassMultiMapping.inl b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/CenterOfMassMultiMapping.inl index 7dccb9ae686..0ad2447ea9c 100644 --- a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/CenterOfMassMultiMapping.inl +++ b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/CenterOfMassMultiMapping.inl @@ -181,7 +181,7 @@ template void CenterOfMassMultiMapping< TIn, TOut >::draw(const core::visual::VisualParams* vparams) { assert( this->toModels.size() == 1 ); - const sofa::core::objectmodel::Data< OutVecCoord > *X = this->getToModels()[0]->read(sofa::core::VecCoordId::position()); + const sofa::core::objectmodel::Data< OutVecCoord > *X = this->getToModels()[0]->read(sofa::core::vec_id::write_access::position); std::vector< sofa::type::Vec3 > points; sofa::type::Vec3 point1,point2; diff --git a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/DeformableOnRigidFrameMapping.inl b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/DeformableOnRigidFrameMapping.inl index 3c4f2e8a4cb..dd14a870950 100644 --- a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/DeformableOnRigidFrameMapping.inl +++ b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/DeformableOnRigidFrameMapping.inl @@ -118,7 +118,7 @@ void DeformableOnRigidFrameMapping::setRepartition(sofa::typ template const typename DataTypes::VecCoord& M_getX0(core::behavior::MechanicalState* model) { - return model->read(core::ConstVecCoordId::restPosition())->getValue(); + return model->read(core::vec_id::read_access::restPosition)->getValue(); } template @@ -323,11 +323,11 @@ void DeformableOnRigidFrameMapping::applyJT( typename In::Ve msg_warning()<<" applyJT was called before any apply ("<read(core::ConstVecCoordId::position()); + const InDataVecCoord* xfromData = m_toModel->read(core::vec_id::read_access::position); const InVecCoord xfrom = xfromData->getValue(); - OutDataVecCoord* xtoData = m_toModel->write(core::VecCoordId::position()); + OutDataVecCoord* xtoData = m_toModel->write(core::vec_id::write_access::position); OutVecCoord &xto = *xtoData->beginEdit(); - apply(xto, xfrom, (m_fromRootModel==nullptr ? nullptr : &m_fromRootModel->read(core::ConstVecCoordId::position())->getValue())); + apply(xto, xfrom, (m_fromRootModel==nullptr ? nullptr : &m_fromRootModel->read(core::vec_id::read_access::position)->getValue())); this->f_printLog.setValue(log); xtoData->endEdit(); } @@ -493,9 +493,9 @@ void DeformableOnRigidFrameMapping::handleTopologyChange(cor { case core::topology::TRIANGLESADDED: ///< To notify the end for the current sequence of topological change events { - core::Multi2Mapping::apply(core::mechanicalparams::defaultInstance(), core::VecCoordId::restPosition(), core::ConstVecCoordId::restPosition()); + core::Multi2Mapping::apply(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::restPosition, core::vec_id::read_access::restPosition); if(this->f_applyRestPosition.getValue() ) - core::Multi2Mapping::apply(core::mechanicalparams::defaultInstance(), core::VecCoordId::position(), core::ConstVecCoordId::position()); + core::Multi2Mapping::apply(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::position, core::vec_id::read_access::position); break; } default: @@ -520,7 +520,7 @@ void DeformableOnRigidFrameMapping::draw(const core::visual: std::vector< sofa::type::Vec3 > points; sofa::type::Vec3 point; - const typename Out::VecCoord& x = m_toModel->read(core::ConstVecCoordId::position())->getValue(); + const typename Out::VecCoord& x = m_toModel->read(core::vec_id::read_access::position)->getValue(); for (unsigned int i=0; i::convolutionSegment(const type::Vec<3,R template void LineSetSkinningMapping::init() { - const OutVecCoord& xto = this->toModel->read(core::ConstVecCoordId::position())->getValue(); - const InVecCoord& xfrom = this->fromModel->read(core::ConstVecCoordId::position())->getValue(); + const OutVecCoord& xto = this->toModel->read(core::vec_id::read_access::position)->getValue(); + const InVecCoord& xfrom = this->fromModel->read(core::vec_id::read_access::position)->getValue(); m_topology = this->fromModel->getContext()->getMeshTopology(); linesInfluencedByVertice.resize(xto.size()); @@ -199,8 +199,8 @@ void LineSetSkinningMapping::draw(const core::visual::VisualParams* v const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); vparams->drawTool()->disableLighting(); - const OutVecCoord& xto = this->toModel->read(core::ConstVecCoordId::position())->getValue(); - const InVecCoord& xfrom = this->fromModel->read(core::ConstVecCoordId::position())->getValue(); + const OutVecCoord& xto = this->toModel->read(core::vec_id::read_access::position)->getValue(); + const InVecCoord& xfrom = this->fromModel->read(core::vec_id::read_access::position)->getValue(); std::vector colorVector; std::vector vertices; @@ -249,7 +249,7 @@ void LineSetSkinningMapping::applyJ( const sofa::core::MechanicalPara { SOFA_UNUSED(mparams); - const InVecCoord& xfrom = this->fromModel->read(core::ConstVecCoordId::position())->getValue(); + const InVecCoord& xfrom = this->fromModel->read(core::vec_id::read_access::position)->getValue(); OutVecDeriv& out = *outData.beginEdit(); const InVecDeriv& in = inData.getValue(); for (unsigned int verticeIndex=0; verticeIndex::applyJT( const sofa::core::MechanicalPar InVecDeriv& out = *outData.beginEdit(); const OutVecDeriv& in = inData.getValue(); - const InVecCoord& xfrom = this->fromModel->read(core::ConstVecCoordId::position())->getValue(); + const InVecCoord& xfrom = this->fromModel->read(core::vec_id::read_access::position)->getValue(); out.clear(); out.resize(xfrom.size()); @@ -319,7 +319,7 @@ void LineSetSkinningMapping::applyJT( const sofa::core::ConstraintPar InMatrixDeriv& out = *outData.beginEdit(); const OutMatrixDeriv& in = inData.getValue(); - const InVecCoord& xfrom = this->fromModel->read(core::ConstVecCoordId::position())->getValue(); + const InVecCoord& xfrom = this->fromModel->read(core::vec_id::read_access::position)->getValue(); typename Out::MatrixDeriv::RowConstIterator rowItEnd = in.end(); diff --git a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/SkinningMapping.inl b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/SkinningMapping.inl index f7efa3a8b77..c230af9a38b 100644 --- a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/SkinningMapping.inl +++ b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/SkinningMapping.inl @@ -70,7 +70,7 @@ template void SkinningMapping::init() { unsigned int numChildren = this->toModel->getSize(); - sofa::helper::ReadAccessor > out (*this->toModel->read(core::ConstVecCoordId::position())); + sofa::helper::ReadAccessor > out (*this->toModel->read(core::vec_id::read_access::position)); sofa::helper::WriteAccessor > initPos(this->d_initPos); if(this->d_initPos.getValue().size() != numChildren ) @@ -92,9 +92,9 @@ void SkinningMapping::reinit() { unsigned int nbref = d_nbRef.getValue()[0]; - sofa::helper::ReadAccessor > out (*this->toModel->read(core::ConstVecCoordId::position())); + sofa::helper::ReadAccessor > out (*this->toModel->read(core::vec_id::read_access::position)); sofa::helper::ReadAccessor > xto (this->d_initPos); - sofa::helper::ReadAccessor > xfrom = *this->fromModel->read(core::ConstVecCoordId::restPosition()); + sofa::helper::ReadAccessor > xfrom = *this->fromModel->read(core::vec_id::read_access::restPosition); sofa::helper::WriteAccessor > > > m_weights (d_weight ); const sofa::helper::ReadAccessor > > > index ( this->d_index ); @@ -141,7 +141,7 @@ void SkinningMapping::updateWeights () msg_info() << "UPDATE WEIGHTS"; sofa::helper::ReadAccessor > xto (this->d_initPos); - sofa::helper::ReadAccessor > xfrom = *this->fromModel->read(core::ConstVecCoordId::restPosition()); + sofa::helper::ReadAccessor > xfrom = *this->fromModel->read(core::vec_id::read_access::restPosition); sofa::helper::WriteAccessor > > > m_weights (d_weight ); sofa::helper::WriteAccessor > > > index (d_index ); @@ -350,8 +350,8 @@ const sofa::linearalgebra::BaseMatrix* SkinningMapping::getJ() template void SkinningMapping::draw(const core::visual::VisualParams* vparams) { - const typename Out::VecCoord& xto = this->toModel->read(core::ConstVecCoordId::position())->getValue(); - const typename In::VecCoord& xfrom = this->fromModel->read(core::ConstVecCoordId::position())->getValue(); + const typename Out::VecCoord& xto = this->toModel->read(core::vec_id::read_access::position)->getValue(); + const typename In::VecCoord& xfrom = this->fromModel->read(core::vec_id::read_access::position)->getValue(); unsigned int nbref = this->d_nbRef.getValue()[0]; sofa::helper::ReadAccessor > > > m_weights (d_weight ); diff --git a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/SubsetMapping.inl b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/SubsetMapping.inl index 813757c5b47..238bdffeb77 100644 --- a/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/SubsetMapping.inl +++ b/Sofa/Component/Mapping/Linear/src/sofa/component/mapping/linear/SubsetMapping.inl @@ -99,8 +99,8 @@ void SubsetMapping::init() { // We have to construct the correspondence index - const InVecCoord& in =this->fromModel->read(core::ConstVecCoordId::position())->getValue(); - const OutVecCoord& out =this->toModel->read(core::ConstVecCoordId::position())->getValue(); + const InVecCoord& in =this->fromModel->read(core::vec_id::read_access::position)->getValue(); + const OutVecCoord& out =this->toModel->read(core::vec_id::read_access::position)->getValue(); IndexArray& indices = *d_indices.beginEdit(); indices.resize(out.size()); @@ -200,7 +200,7 @@ void SubsetMapping::apply ( const core::MechanicalParams* /*mparams*/ } const InVecCoord& in = dIn.getValue(); - const OutVecCoord& out0 = this->toModel->read(core::ConstVecCoordId::restPosition())->getValue(); + const OutVecCoord& out0 = this->toModel->read(core::vec_id::read_access::restPosition)->getValue(); OutVecCoord& out = *dOut.beginEdit(); const auto fromSize = in.size(); @@ -298,8 +298,8 @@ const sofa::linearalgebra::BaseMatrix* SubsetMapping::getJ() { if (matrixJ.get() == 0 || updateJ) { - const OutVecCoord& out =this->toModel->read(core::ConstVecCoordId::position())->getValue(); - const InVecCoord& in =this->fromModel->read(core::ConstVecCoordId::position())->getValue(); + const OutVecCoord& out =this->toModel->read(core::vec_id::read_access::position)->getValue(); + const InVecCoord& in =this->fromModel->read(core::vec_id::read_access::position)->getValue(); const IndexArray& indices = d_indices.getValue(); assert(indices.size() == out.size()); const std::size_t fromSize = in.size(); diff --git a/Sofa/Component/Mapping/NonLinear/src/sofa/component/mapping/nonlinear/RigidMapping.inl b/Sofa/Component/Mapping/NonLinear/src/sofa/component/mapping/nonlinear/RigidMapping.inl index 9db5a35faeb..fa2d0f1911c 100644 --- a/Sofa/Component/Mapping/NonLinear/src/sofa/component/mapping/nonlinear/RigidMapping.inl +++ b/Sofa/Component/Mapping/NonLinear/src/sofa/component/mapping/nonlinear/RigidMapping.inl @@ -179,7 +179,7 @@ void RigidMapping::reinit() { if (d_points.getValue().empty() && this->toModel != nullptr && !d_useX0.getValue()) { - const OutVecCoord& xTo =this->toModel->read(core::ConstVecCoordId::position())->getValue(); + const OutVecCoord& xTo =this->toModel->read(core::vec_id::read_access::position)->getValue(); helper::WriteOnlyAccessor > points = d_points; sofa::Size toModelSize = xTo.size(); points.resize(toModelSize); @@ -187,7 +187,7 @@ void RigidMapping::reinit() if (d_globalToLocalCoords.getValue()) { unsigned int i = 0; - const InVecCoord& xFrom =this->fromModel->read(core::ConstVecCoordId::position())->getValue(); + const InVecCoord& xFrom =this->fromModel->read(core::vec_id::read_access::position)->getValue(); for (i = 0; i < toModelSize; i++) { @@ -290,7 +290,7 @@ const typename RigidMapping::OutVecCoord & RigidMapping::g { if (d_useX0.getValue()) { - const Data* v = this->toModel.get()->read(core::VecCoordId::restPosition()); + const Data* v = this->toModel.get()->read(core::vec_id::write_access::restPosition); if (v) { return v->getValue(); @@ -511,8 +511,8 @@ void fill_block(Eigen::Matrix& block, const Coord& v) { template const type::vector* RigidMapping::getJs() { - const OutVecCoord& out =this->toModel->read(core::ConstVecCoordId::position())->getValue(); - const InVecCoord& in =this->fromModel->read(core::ConstVecCoordId::position())->getValue(); + const OutVecCoord& out =this->toModel->read(core::vec_id::read_access::position)->getValue(); + const InVecCoord& in =this->fromModel->read(core::vec_id::read_access::position)->getValue(); typename SparseMatrixEigen::CompressedMatrix& J = m_eigenJacobian.compressedMatrix; @@ -700,8 +700,8 @@ void RigidMapping::buildGeometricStiffnessMatrix( template const sofa::linearalgebra::BaseMatrix* RigidMapping::getJ() { - const OutVecCoord& out =this->toModel->read(core::ConstVecCoordId::position())->getValue(); - const InVecCoord& in =this->fromModel->read(core::ConstVecCoordId::position())->getValue(); + const OutVecCoord& out =this->toModel->read(core::vec_id::read_access::position)->getValue(); + const InVecCoord& in =this->fromModel->read(core::vec_id::read_access::position)->getValue(); const OutVecCoord& pts = this->getPoints(); assert(pts.size() == out.size()); @@ -777,7 +777,7 @@ void RigidMapping::draw(const core::visual::VisualParams* vparams) std::vector points; type::Vec3 point; - const OutVecCoord& x =this->toModel->read(core::ConstVecCoordId::position())->getValue(); + const OutVecCoord& x =this->toModel->read(core::vec_id::read_access::position)->getValue(); for (unsigned int i = 0; i < x.size(); i++) { point = Out::getCPos(x[i]); diff --git a/Sofa/Component/Mapping/NonLinear/tests/SquareDistanceMapping_test.cpp b/Sofa/Component/Mapping/NonLinear/tests/SquareDistanceMapping_test.cpp index 833363657c9..a837a54366f 100644 --- a/Sofa/Component/Mapping/NonLinear/tests/SquareDistanceMapping_test.cpp +++ b/Sofa/Component/Mapping/NonLinear/tests/SquareDistanceMapping_test.cpp @@ -212,10 +212,10 @@ struct SquareDistanceMappingCompare_test : NumericTest //position { sofa::type::vector mstatex0(mstate0->getMatrixSize()); - mstate0->copyToBuffer(mstatex0.data(), core::ConstVecCoordId::position(), mstate0->getMatrixSize()); + mstate0->copyToBuffer(mstatex0.data(), core::vec_id::read_access::position, mstate0->getMatrixSize()); sofa::type::vector mstatex1(mstate1->getMatrixSize()); - mstate1->copyToBuffer(mstatex1.data(), core::ConstVecCoordId::position(), mstate1->getMatrixSize()); + mstate1->copyToBuffer(mstatex1.data(), core::vec_id::read_access::position, mstate1->getMatrixSize()); EXPECT_LT(this->vectorMaxDiff(mstatex0, mstatex1), epsilon) << "Time step " << timeStepCount << "\n" << mstatex0 << "\n" << mstatex1; @@ -224,10 +224,10 @@ struct SquareDistanceMappingCompare_test : NumericTest //velocity { sofa::type::vector mstatev0(mstate0->getMatrixSize()); - mstate0->copyToBuffer(mstatev0.data(), core::ConstVecDerivId::velocity(), mstate0->getMatrixSize()); + mstate0->copyToBuffer(mstatev0.data(), core::vec_id::read_access::velocity, mstate0->getMatrixSize()); sofa::type::vector mstatev1(mstate1->getMatrixSize()); - mstate1->copyToBuffer(mstatev1.data(), core::ConstVecDerivId::velocity(), mstate1->getMatrixSize()); + mstate1->copyToBuffer(mstatev1.data(), core::vec_id::read_access::velocity, mstate1->getMatrixSize()); EXPECT_LT(this->vectorMaxDiff(mstatev0, mstatev1), epsilon) << "Time step " << timeStepCount << "\n" << mstatev0 << "\n" << mstatev1; @@ -236,10 +236,10 @@ struct SquareDistanceMappingCompare_test : NumericTest //force { sofa::type::vector mstatef0(mstate0->getMatrixSize()); - mstate0->copyToBuffer(mstatef0.data(), core::ConstVecDerivId::force(), mstate0->getMatrixSize()); + mstate0->copyToBuffer(mstatef0.data(), core::vec_id::read_access::force, mstate0->getMatrixSize()); sofa::type::vector mstatef1(mstate1->getMatrixSize()); - mstate1->copyToBuffer(mstatef1.data(), core::ConstVecDerivId::force(), mstate1->getMatrixSize()); + mstate1->copyToBuffer(mstatef1.data(), core::vec_id::read_access::force, mstate1->getMatrixSize()); EXPECT_LT(this->vectorMaxDiff(mstatef0, mstatef1), epsilon) << "Time step " << timeStepCount << "\n" << mstatef0 << "\n" << mstatef1; diff --git a/Sofa/Component/Mapping/Testing/src/sofa/component/mapping/testing/MappingTestCreation.h b/Sofa/Component/Mapping/Testing/src/sofa/component/mapping/testing/MappingTestCreation.h index 075524fe651..63657b8542e 100644 --- a/Sofa/Component/Mapping/Testing/src/sofa/component/mapping/testing/MappingTestCreation.h +++ b/Sofa/Component/Mapping/Testing/src/sofa/component/mapping/testing/MappingTestCreation.h @@ -231,7 +231,7 @@ struct Mapping_test: public BaseSimulationTest, NumericTestvRealloc( &mparams, core::VecDerivId::dx() ); // dx is not allocated by default + inDofs->vRealloc( &mparams, core::vec_id::write_access::dx ); // dx is not allocated by default inDofs->writeDx().wref() = velocityIn; const VecDeriv_t dfp_withoutUpdateK = applyDJT(mparams, false); @@ -261,11 +261,11 @@ struct Mapping_test: public BaseSimulationTest, NumericTestwrite( MatrixDerivId::constraintJacobian() ); -// WriteOutMatrixDeriv mout = outDofs->write( MatrixDerivId::constraintJacobian() ); +// /*WriteInMatrixDeriv min = */inDofs->write( vec_id::write_access::constraintJacobian ); +// WriteOutMatrixDeriv mout = outDofs->write( vec_id::write_access::constraintJacobian ); // copyToData(mout,outMatrices); -// mapping->applyJt( ConstraintParams*, MatrixDerivId::constraintJacobian(), MatrixDerivId::constraintJacobian() ); +// mapping->applyJt( ConstraintParams*, vec_id::write_access::constraintJacobian, vec_id::write_access::constraintJacobian ); } @@ -400,8 +400,8 @@ struct Mapping_test: public BaseSimulationTest, NumericTestapply(&mparams, core::VecCoordId::position(), core::VecCoordId::position()); - mapping->applyJ(&mparams, core::VecDerivId::velocity(), core::VecDerivId::velocity()); + mapping->apply(&mparams, core::vec_id::write_access::position, core::vec_id::write_access::position); + mapping->applyJ(&mparams, core::vec_id::write_access::velocity, core::vec_id::write_access::velocity); bool succeed = true; @@ -441,14 +441,14 @@ struct Mapping_test: public BaseSimulationTest, NumericTestwriteForces()->fill(Deriv_t()); // reset parent forces before accumulating child forces outDofs->writeForces().wref() = forceOut; - mapping->applyJT( &mparams, core::VecDerivId::force(), core::VecDerivId::force() ); + mapping->applyJT( &mparams, core::vec_id::write_access::force, core::vec_id::write_access::force ); forceIn = inDofs->readForces().ref(); } void computeVelocityOutFromVelocityIn(core::MechanicalParams mparams, VecDeriv_t& velocityOut, const VecDeriv_t& velocityIn) { inDofs->writeVelocities().wref() = velocityIn; - mapping->applyJ( &mparams, core::VecDerivId::velocity(), core::VecDerivId::velocity() ); + mapping->applyJ( &mparams, core::vec_id::write_access::velocity, core::vec_id::write_access::velocity ); velocityOut = outDofs->readVelocities().ref(); } @@ -458,9 +458,9 @@ struct Mapping_test: public BaseSimulationTest, NumericTestupdateK( &mparams, core::ConstVecDerivId::force() ); // updating stiffness matrix for the current state and force + mapping->updateK( &mparams, core::vec_id::read_access::force ); // updating stiffness matrix for the current state and force } - mapping->applyDJT( &mparams, core::VecDerivId::force(), core::VecDerivId::force() ); + mapping->applyDJT( &mparams, core::vec_id::write_access::force, core::vec_id::write_access::force ); return inDofs->readForces().ref(); } @@ -575,7 +575,7 @@ struct Mapping_test: public BaseSimulationTest, NumericTest errorThreshold ) { - mapping->apply ( &mparams, core::VecCoordId::position(), core::VecCoordId::position() ); + mapping->apply ( &mparams, core::vec_id::write_access::position, core::vec_id::write_access::position ); const VecCoord_t& positionOut1 = outDofs->readPositions(); const auto sizeOut = positionOut.size(); diff --git a/Sofa/Component/Mapping/Testing/src/sofa/component/mapping/testing/Multi2MappingTestCreation.h b/Sofa/Component/Mapping/Testing/src/sofa/component/mapping/testing/Multi2MappingTestCreation.h index 2b52c3ea1f4..624e83aeb73 100644 --- a/Sofa/Component/Mapping/Testing/src/sofa/component/mapping/testing/Multi2MappingTestCreation.h +++ b/Sofa/Component/Mapping/Testing/src/sofa/component/mapping/testing/Multi2MappingTestCreation.h @@ -207,8 +207,8 @@ struct Multi2Mapping_test : public BaseSimulationTest, NumericTestmapping->apply(&mparams, core::VecCoordId::position(), core::VecCoordId::position()); - this->mapping->applyJ(&mparams, core::VecDerivId::velocity(), core::VecDerivId::velocity() ); + this->mapping->apply(&mparams, core::vec_id::write_access::position, core::vec_id::write_access::position); + this->mapping->applyJ(&mparams, core::vec_id::write_access::velocity, core::vec_id::write_access::velocity ); // ================ test apply : check if the child positions are the expected ones bool succeed = true; ReadOutVecCoord xout = this->outDofs->readPositions(); @@ -256,7 +256,7 @@ struct Multi2Mapping_test : public BaseSimulationTest, NumericTestwriteForces(); sofa::testing::copyToData(fout, fc); - this->mapping->applyJT( &mparams, core::VecDerivId::force(), core::VecDerivId::force() ); + this->mapping->applyJT( &mparams, core::vec_id::write_access::force, core::vec_id::write_access::force ); for (Index i = 0; i < Np1.size(); i++) sofa::testing::copyFromData(fIn1p[i], this->in1Dofs[i]->readForces()); for (Index i = 0; i < Np2.size(); i++) sofa::testing::copyFromData(fIn2p[i], this->in2Dofs[i]->readForces()); @@ -291,7 +291,7 @@ struct Multi2Mapping_test : public BaseSimulationTest, NumericTestin2Dofs[p]->writeVelocities(); sofa::testing::copyToData(vIn2, vIn2p[p]); } - this->mapping->applyJ(&mparams, core::VecDerivId::velocity(), core::VecDerivId::velocity() ); + this->mapping->applyJ(&mparams, core::vec_id::write_access::velocity, core::vec_id::write_access::velocity ); ReadOutVecDeriv vout = this->outDofs->readVelocities(); sofa::testing::copyFromData(vc, vout); @@ -314,7 +314,7 @@ struct Multi2Mapping_test : public BaseSimulationTest, NumericTestin2Dofs[p]->writeForces(); sofa::testing::copyToData( fin2, dfIn2p[p] ); } - mapping->applyDJT( &mparams, core::VecDerivId::force(), core::VecDerivId::force() ); + mapping->applyDJT( &mparams, core::vec_id::write_access::force, core::vec_id::write_access::force ); for( Index p=0; preadForces() ); // fp + df due to geometric stiffness for( Index p=0; preadForces() ); // fp + df due to geometric stiffness @@ -373,7 +373,7 @@ struct Multi2Mapping_test : public BaseSimulationTest, NumericTestmapping->applyJT( &mparams, core::VecDerivId::force(), core::VecDerivId::force() ); + this->mapping->applyJT( &mparams, core::vec_id::write_access::force, core::vec_id::write_access::force ); for (Index i = 0; i < Np1.size(); i++) sofa::testing::copyFromData(fIn1p[i], this->in1Dofs[i]->readForces()); for (Index i = 0; i < Np2.size(); i++) sofa::testing::copyFromData(fIn2p[i], this->in2Dofs[i]->readForces()); @@ -389,7 +389,7 @@ struct Multi2Mapping_test : public BaseSimulationTest, NumericTestwritePositions(); sofa::testing::copyToData(pin2, xIn2p1[p]); } - this->mapping->apply(&mparams, core::VecCoordId::position(), core::VecCoordId::position()); + this->mapping->apply(&mparams, core::vec_id::write_access::position, core::vec_id::write_access::position); WriteOutVecCoord pout = this->outDofs->writePositions(); sofa::testing::copyFromData(xc1, pout); @@ -418,7 +418,7 @@ struct Multi2Mapping_test : public BaseSimulationTest, NumericTestmapping->applyJT( &mparams, core::VecDerivId::force(), core::VecDerivId::force() ); + this->mapping->applyJT( &mparams, core::vec_id::write_access::force, core::vec_id::write_access::force ); vector fIn1p12(Np1.size()); vector fIn2p12(Np2.size()); // ================ test applyDJT() (Case 1) diff --git a/Sofa/Component/Mapping/Testing/src/sofa/component/mapping/testing/MultiMappingTestCreation.h b/Sofa/Component/Mapping/Testing/src/sofa/component/mapping/testing/MultiMappingTestCreation.h index 1b020d4b8ae..3c0e5868a0a 100644 --- a/Sofa/Component/Mapping/Testing/src/sofa/component/mapping/testing/MultiMappingTestCreation.h +++ b/Sofa/Component/Mapping/Testing/src/sofa/component/mapping/testing/MultiMappingTestCreation.h @@ -177,8 +177,8 @@ struct MultiMapping_test : public BaseSimulationTest, NumericTestapply(&mparams, core::VecCoordId::position(), core::VecCoordId::position()); - mapping->applyJ(&mparams, core::VecDerivId::velocity(), core::VecDerivId::velocity()); + mapping->apply(&mparams, core::vec_id::write_access::position, core::vec_id::write_access::position); + mapping->applyJ(&mparams, core::vec_id::write_access::velocity, core::vec_id::write_access::velocity); /// test apply: check if the child positions are the expected ones bool succeed=true; @@ -228,7 +228,7 @@ struct MultiMapping_test : public BaseSimulationTest, NumericTestwriteForces(); sofa::testing::copyToData( fout, fc ); - mapping->applyJT( &mparams, core::VecDerivId::force(), core::VecDerivId::force() ); + mapping->applyJT( &mparams, core::vec_id::write_access::force, core::vec_id::write_access::force ); for(Index i=0; ireadForces() ); // cout<<"parent forces fp = "<writeVelocities(); sofa::testing::copyToData( vin, vp[p] ); } - mparams.setDx(core::ConstVecDerivId::velocity()); - mapping->applyJ( &mparams, core::VecDerivId::velocity(), core::VecDerivId::velocity() ); + mparams.setDx(core::vec_id::read_access::velocity); + mapping->applyJ( &mparams, core::vec_id::write_access::velocity, core::vec_id::write_access::velocity ); ReadOutVecDeriv vout = outDofs->readVelocities(); sofa::testing::copyFromData( vc, vout); // cout<<"child velocity vc = " << vc << endl; @@ -266,8 +266,8 @@ struct MultiMapping_test : public BaseSimulationTest, NumericTestwriteForces(); sofa::testing::copyToData( fin, dfp[p] ); } - mapping->updateK( &mparams, core::ConstVecDerivId::force() ); // updating stiffness matrix for the current state and force - mapping->applyDJT( &mparams, core::VecDerivId::force(), core::VecDerivId::force() ); + mapping->updateK( &mparams, core::vec_id::read_access::force ); // updating stiffness matrix for the current state and force + mapping->applyDJT( &mparams, core::vec_id::write_access::force, core::vec_id::write_access::force ); for( Index p=0; preadForces() ); // fp + df due to geometric stiffness // cout<<"dfp["<< p <<"] = " << dfp[p] << endl; @@ -319,7 +319,7 @@ struct MultiMapping_test : public BaseSimulationTest, NumericTestapplyJT( &mparams, core::VecDerivId::force(), core::VecDerivId::force() ); + mapping->applyJT( &mparams, core::vec_id::write_access::force, core::vec_id::write_access::force ); for( Index p=0; preadForces() ); @@ -334,7 +334,7 @@ struct MultiMapping_test : public BaseSimulationTest, NumericTestmstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); if (x.empty()) return; @@ -176,7 +176,7 @@ void EdgePressureForceField::initEdgeInformation() sofa::type::vector& my_subset = *(d_edgePressureMap).beginEdit(); - const VecCoord& x0 = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x0 = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); auto getEdgeLength = [](const sofa::topology::Edge& e, const VecCoord& pos) { const auto& n0 = DataTypes::getCPos(pos[e[0]]); @@ -290,7 +290,7 @@ void EdgePressureForceField::updateEdgeInformation() if (!this->mstate.get()) msg_error() << " No mechanical Object linked."; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); if (x.empty()) { @@ -343,7 +343,7 @@ void EdgePressureForceField::buildDampingMatrix(core::behavior::Dampi template void EdgePressureForceField::selectEdgesAlongPlane() { - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); std::vector vArray; vArray.resize(x.size()); @@ -437,7 +437,7 @@ void EdgePressureForceField::draw(const core::visual::VisualParams* v const SReal aSC = d_arrowSizeCoef.getValue(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); vparams->drawTool()->disableLighting(); constexpr const sofa::type::RGBAColor& color = sofa::type::RGBAColor::yellow(); diff --git a/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/InteractionEllipsoidForceField.inl b/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/InteractionEllipsoidForceField.inl index 1833ca93616..c9af483eb15 100644 --- a/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/InteractionEllipsoidForceField.inl +++ b/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/InteractionEllipsoidForceField.inl @@ -64,7 +64,7 @@ void InteractionEllipsoidForceField::init() return; } - vars.pos6D = this->mstate2->read(core::VecCoordId::position())->getValue()[object2_dof_index.getValue()]; + vars.pos6D = this->mstate2->read(core::vec_id::write_access::position)->getValue()[object2_dof_index.getValue()]; if(object2_invert.getValue()) vars.pos6D = DataTypes2::inverse(vars.pos6D); initCalcF(); @@ -74,7 +74,7 @@ template void InteractionEllipsoidForceField::reinit() { Inherit1::reinit(); - vars.pos6D = this->mstate2->read(core::VecCoordId::position())->getValue()[object2_dof_index.getValue()]; + vars.pos6D = this->mstate2->read(core::vec_id::write_access::position)->getValue()[object2_dof_index.getValue()]; if(object2_invert.getValue()) vars.pos6D = DataTypes2::inverse(vars.pos6D); initCalcF(); diff --git a/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/OscillatingTorsionPressureForceField.inl b/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/OscillatingTorsionPressureForceField.inl index e803a8115c8..7b8432d94e2 100644 --- a/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/OscillatingTorsionPressureForceField.inl +++ b/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/OscillatingTorsionPressureForceField.inl @@ -227,7 +227,7 @@ void OscillatingTorsionPressureForceField::buildDampingMatrix(core::b template void OscillatingTorsionPressureForceField::initTriangleInformation() { - const VecCoord& x0 = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x0 = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); int idx[3]; Real d[10]; @@ -279,7 +279,7 @@ void OscillatingTorsionPressureForceField::initTriangleInformation() template void OscillatingTorsionPressureForceField::selectTrianglesAlongPlane() { - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); std::vector vArray; vArray.resize(x.size()); @@ -342,7 +342,7 @@ void OscillatingTorsionPressureForceField::draw(const core::visual::V if (vparams->displayFlags().getShowWireFrame()) vparams->drawTool()->setPolygonMode(0, true); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); vparams->drawTool()->disableLighting(); const sofa::type::RGBAColor color = sofa::type::RGBAColor::green(); diff --git a/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/PlaneForceField.inl b/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/PlaneForceField.inl index abbd6ec1e03..568531feee8 100644 --- a/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/PlaneForceField.inl +++ b/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/PlaneForceField.inl @@ -345,7 +345,7 @@ void PlaneForceField::drawPlane(const core::visual::VisualParams* vpa if (size == 0.0f) size = (float)d_drawSize.getValue(); - helper::ReadAccessor p1 = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + helper::ReadAccessor p1 = this->mstate->read(core::vec_id::read_access::position)->getValue(); type::Vec3 normal{type::NOINIT}, v1{ type::NOINIT }, v2{ type::NOINIT }; get3DFrameFromDPosNormal(d_planeNormal.getValue(), v1, v2, normal); diff --git a/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/QuadPressureForceField.inl b/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/QuadPressureForceField.inl index 430e473156c..9b6901a4524 100644 --- a/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/QuadPressureForceField.inl +++ b/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/QuadPressureForceField.inl @@ -134,7 +134,7 @@ void QuadPressureForceField::initQuadInformation() const sofa::type::vector& my_map = d_quadPressureMap.getMap2Elements(); auto my_subset = sofa::helper::getWriteOnlyAccessor(d_quadPressureMap); - const VecCoord& x0 = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x0 = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); for (unsigned int i=0; i::updateQuadInformation() template void QuadPressureForceField::selectQuadsAlongPlane() { - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); std::vector vArray; vArray.resize(x.size()); @@ -251,7 +251,7 @@ void QuadPressureForceField::draw(const core::visual::VisualParams* v if (vparams->displayFlags().getShowWireFrame()) vparams->drawTool()->setPolygonMode(0, true); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); vparams->drawTool()->disableLighting(); std::vector vertices; diff --git a/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/SurfacePressureForceField.inl b/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/SurfacePressureForceField.inl index e815066f879..226f5cb3ca1 100644 --- a/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/SurfacePressureForceField.inl +++ b/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/SurfacePressureForceField.inl @@ -554,7 +554,7 @@ void SurfacePressureForceField::draw(const core::visual::VisualParams } - helper::ReadAccessor x = this->mstate->read(core::ConstVecCoordId::position()); + helper::ReadAccessor x = this->mstate->read(core::vec_id::read_access::position); if (d_drawForceScale.getValue() && m_f.size() == x.size()) { std::vector points; diff --git a/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/TaitSurfacePressureForceField.inl b/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/TaitSurfacePressureForceField.inl index e75e8d0fd27..7bf9e3acd95 100644 --- a/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/TaitSurfacePressureForceField.inl +++ b/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/TaitSurfacePressureForceField.inl @@ -140,7 +140,7 @@ void TaitSurfacePressureForceField::init() } updateFromTopology(); - computeMeshVolumeAndArea(*d_currentVolume.beginEdit(), *d_currentSurfaceArea.beginEdit(), this->mstate->read(sofa::core::VecCoordId::position())); + computeMeshVolumeAndArea(*d_currentVolume.beginEdit(), *d_currentSurfaceArea.beginEdit(), this->mstate->read(sofa::core::vec_id::write_access::position)); d_currentVolume.endEdit(); d_currentSurfaceArea.endEdit(); Real currentStiffness = 0; @@ -148,7 +148,7 @@ void TaitSurfacePressureForceField::init() computePressureAndStiffness(currentPressure, currentStiffness, d_currentVolume.getValue(), d_v0.getValue()); d_currentPressure.setValue(currentPressure); d_currentStiffness.setValue(currentStiffness); - computeStatistics(this->mstate->read(sofa::core::VecCoordId::position())); + computeStatistics(this->mstate->read(sofa::core::vec_id::write_access::position)); } template @@ -203,7 +203,7 @@ void TaitSurfacePressureForceField::updateFromTopology() lastTopologyRevision = m_topology->getRevision(); computePressureTriangles(); - computeMeshVolumeAndArea(*d_volumeAfterTC.beginEdit(), *d_surfaceAreaAfterTC.beginEdit(), this->mstate->read(core::ConstVecCoordId::restPosition())); + computeMeshVolumeAndArea(*d_volumeAfterTC.beginEdit(), *d_surfaceAreaAfterTC.beginEdit(), this->mstate->read(core::vec_id::read_access::restPosition)); d_volumeAfterTC.endEdit(); d_surfaceAreaAfterTC.endEdit(); if (lastTopologyRevision == 0) @@ -243,7 +243,7 @@ void TaitSurfacePressureForceField::addForce(const core::MechanicalPa helper::WriteAccessor f = d_f; helper::ReadAccessor x = d_x; //helper::ReadAccessor v = d_v; - //helper::ReadAccessor x0 = this->mstate->read(core::ConstVecCoordId::restPosition()); + //helper::ReadAccessor x0 = this->mstate->read(core::vec_id::read_access::restPosition); const helper::ReadAccessor< Data< SeqTriangles > > pressureTriangles = d_pressureTriangles; computeMeshVolumeAndArea(*d_currentVolume.beginEdit(), *d_currentSurfaceArea.beginEdit(), x); @@ -303,7 +303,7 @@ void TaitSurfacePressureForceField::addDForce(const core::MechanicalP helper::WriteAccessor df = d_df; helper::ReadAccessor dx = d_dx; helper::ReadAccessor x = mparams->readX(this->mstate.get()); - //helper::ReadAccessor x0 = this->mstate->read(core::ConstVecCoordId::restPosition()); + //helper::ReadAccessor x0 = this->mstate->read(core::vec_id::read_access::restPosition); const helper::ReadAccessor< Data< SeqTriangles > > pressureTriangles = d_pressureTriangles; helper::ReadAccessor gradV = this->gradV; @@ -529,7 +529,7 @@ void TaitSurfacePressureForceField::draw(const core::visual::VisualPa if (vparams->displayFlags().getShowWireFrame()) vparams->drawTool()->setPolygonMode(0,vparams->displayFlags().getShowWireFrame()); - helper::ReadAccessor x = this->mstate->read(core::ConstVecCoordId::position()); + helper::ReadAccessor x = this->mstate->read(core::vec_id::read_access::position); const helper::ReadAccessor< Data< SeqTriangles > > pressureTriangles = d_pressureTriangles; diff --git a/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/TrianglePressureForceField.inl b/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/TrianglePressureForceField.inl index dbb85054555..95b8c82b742 100644 --- a/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/TrianglePressureForceField.inl +++ b/Sofa/Component/MechanicalLoad/src/sofa/component/mechanicalload/TrianglePressureForceField.inl @@ -164,7 +164,7 @@ void TrianglePressureForceField::initTriangleInformation() d_trianglePressureMap.setMap2Elements(_triangleList); // Fill pressure data - const VecCoord& x0 = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x0 = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); const Deriv& my_pressure = pressure.getValue(); for (unsigned int i = 0; i < _triangleList.size(); ++i) @@ -206,7 +206,7 @@ void TrianglePressureForceField::draw(const core::visual::VisualParam if (vparams->displayFlags().getShowWireFrame()) vparams->drawTool()->setPolygonMode(0, true); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); vparams->drawTool()->disableLighting(); diff --git a/Sofa/Component/MechanicalLoad/tests/SkeletalMotionConstraint_test.cpp b/Sofa/Component/MechanicalLoad/tests/SkeletalMotionConstraint_test.cpp index 35e39dff75f..51c8db83051 100644 --- a/Sofa/Component/MechanicalLoad/tests/SkeletalMotionConstraint_test.cpp +++ b/Sofa/Component/MechanicalLoad/tests/SkeletalMotionConstraint_test.cpp @@ -128,7 +128,7 @@ struct SkeletalMotionProjectiveConstraint_test : public BaseSimulationTest, Nume bool test_projectPosition() { - projection->projectPosition(core::mechanicalparams::defaultInstance(), *dofs->write(core::VecCoordId::position())); + projection->projectPosition(core::mechanicalparams::defaultInstance(), *dofs->write(core::vec_id::write_access::position)); typename MechanicalObject::ReadVecCoord x = dofs->readPositions(); Coord target0(CPos(0.5,0.5,0.5), CRot(0, 0.19509, 0, 0.980785)); Coord target1(CPos(0.5,1.5,0.5), CRot(0.69352, 0.13795, -0.13795, 0.69352)); @@ -153,7 +153,7 @@ struct SkeletalMotionProjectiveConstraint_test : public BaseSimulationTest, Nume bool test_projectVelocity() { - projection->projectVelocity(core::mechanicalparams::defaultInstance(), *dofs->write(core::VecDerivId::velocity())); + projection->projectVelocity(core::mechanicalparams::defaultInstance(), *dofs->write(core::vec_id::write_access::velocity)); typename MechanicalObject::ReadVecDeriv x = dofs->readVelocities(); bool succeed = true; Deriv target(CPos(1,1,1), typename Deriv::Rot(0,0.785397,0)); diff --git a/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/EulerImplicitSolver.cpp b/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/EulerImplicitSolver.cpp index fd44c92cb7c..37ed60880bd 100644 --- a/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/EulerImplicitSolver.cpp +++ b/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/EulerImplicitSolver.cpp @@ -83,9 +83,9 @@ void EulerImplicitSolver::solve(const core::ExecParams* params, SReal dt, sofa:: #endif sofa::simulation::common::VectorOperations vop( params, this->getContext() ); sofa::simulation::common::MechanicalOperations mop( params, this->getContext() ); - MultiVecCoord pos(&vop, core::VecCoordId::position() ); - MultiVecDeriv vel(&vop, core::VecDerivId::velocity() ); - MultiVecDeriv f(&vop, core::VecDerivId::force() ); + MultiVecCoord pos(&vop, core::vec_id::write_access::position ); + MultiVecDeriv vel(&vop, core::vec_id::write_access::velocity ); + MultiVecDeriv f(&vop, core::vec_id::write_access::force ); MultiVecDeriv b(&vop, true, core::VecIdProperties{"RHS", GetClass()->className}); MultiVecCoord newPos(&vop, xResult ); MultiVecDeriv newVel(&vop, vResult ); @@ -95,7 +95,7 @@ void EulerImplicitSolver::solve(const core::ExecParams* params, SReal dt, sofa:: mop.cparams.setV(vResult); // dx is no longer allocated by default (but it will be deleted automatically by the mechanical objects) - MultiVecDeriv dx(&vop, core::VecDerivId::dx()); + MultiVecDeriv dx(&vop, core::vec_id::write_access::dx); dx.realloc(&vop, !d_threadSafeVisitor.getValue(), true); x.realloc(&vop, !d_threadSafeVisitor.getValue(), true, core::VecIdProperties{"solution", GetClass()->className}); diff --git a/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/NewmarkImplicitSolver.cpp b/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/NewmarkImplicitSolver.cpp index cf35ceb506e..e69abebe1e6 100644 --- a/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/NewmarkImplicitSolver.cpp +++ b/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/NewmarkImplicitSolver.cpp @@ -61,8 +61,8 @@ void NewmarkImplicitSolver::solve(const core::ExecParams* params, SReal dt, sofa { sofa::simulation::common::VectorOperations vop( params, this->getContext() ); sofa::simulation::common::MechanicalOperations mop( params, this->getContext() ); - MultiVecCoord pos(&vop, core::VecCoordId::position() ); - MultiVecDeriv vel(&vop, core::VecDerivId::velocity() ); + MultiVecCoord pos(&vop, core::vec_id::write_access::position ); + MultiVecDeriv vel(&vop, core::vec_id::write_access::velocity ); MultiVecDeriv b(&vop); MultiVecDeriv aResult(&vop); MultiVecCoord newPos(&vop, xResult ); @@ -70,7 +70,7 @@ void NewmarkImplicitSolver::solve(const core::ExecParams* params, SReal dt, sofa // dx is no longer allocated by default (but it will be deleted automatically by the mechanical objects) - MultiVecDeriv dx(&vop, core::VecDerivId::dx()); dx.realloc(&vop, !d_threadSafeVisitor.getValue(), true); + MultiVecDeriv dx(&vop, core::vec_id::write_access::dx); dx.realloc(&vop, !d_threadSafeVisitor.getValue(), true); const SReal h = dt; diff --git a/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/StaticSolver.cpp b/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/StaticSolver.cpp index 61f3eba93a2..080b2a192ca 100644 --- a/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/StaticSolver.cpp +++ b/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/StaticSolver.cpp @@ -92,8 +92,8 @@ void StaticSolver::solve(const sofa::core::ExecParams* params, SReal dt, sofa::c // Initialize the set of multi-vectors used by this solver MultiVecCoord x(&vop, xResult ); - MultiVecDeriv force( &vop, sofa::core::VecDerivId::force() ); - MultiVecDeriv dx( &vop, sofa::core::VecDerivId::dx() ); + MultiVecDeriv force( &vop, sofa::core::vec_id::write_access::force ); + MultiVecDeriv dx( &vop, sofa::core::vec_id::write_access::dx ); dx.realloc( &vop , true, true); U.realloc( &vop ); U.clear(); diff --git a/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/VariationalSymplecticSolver.cpp b/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/VariationalSymplecticSolver.cpp index 782466879b9..8dfe7ab91d5 100644 --- a/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/VariationalSymplecticSolver.cpp +++ b/Sofa/Component/ODESolver/Backward/src/sofa/component/odesolver/backward/VariationalSymplecticSolver.cpp @@ -83,8 +83,8 @@ void VariationalSymplecticSolver::solve(const core::ExecParams* params, SReal dt sofa::simulation::common::VectorOperations vop( params, this->getContext() ); sofa::simulation::common::MechanicalOperations mop( params, this->getContext() ); - MultiVecCoord pos(&vop, core::VecCoordId::position() ); - MultiVecDeriv f(&vop, core::VecDerivId::force() ); + MultiVecCoord pos(&vop, core::vec_id::write_access::position ); + MultiVecDeriv f(&vop, core::vec_id::write_access::force ); MultiVecCoord oldpos(&vop); MultiVecCoord x_1(&vop, xResult); // vector of final position @@ -93,7 +93,7 @@ void VariationalSymplecticSolver::solve(const core::ExecParams* params, SReal dt MultiVecDeriv vel_1(&vop, vResult); // vector of final velocity MultiVecDeriv p(&vop); // vector of momentum // dx is no longer allocated by default (but it will be deleted automatically by the mechanical objects) - MultiVecDeriv dx(&vop, core::VecDerivId::dx()); dx.realloc(&vop, !d_threadSafeVisitor.getValue(), true); + MultiVecDeriv dx(&vop, core::vec_id::write_access::dx); dx.realloc(&vop, !d_threadSafeVisitor.getValue(), true); const SReal& h = dt; const SReal rM = d_rayleighMass.getValue(); @@ -130,7 +130,7 @@ void VariationalSymplecticSolver::solve(const core::ExecParams* params, SReal dt if (d_explicit.getValue()) { mop->setImplicit(false); // this solver is explicit only - MultiVecDeriv acc(&vop, core::VecDerivId::dx()); acc.realloc(&vop, !d_threadSafeVisitor.getValue(), true); // dx is no longer allocated by default (but it will be deleted automatically by the mechanical objects) + MultiVecDeriv acc(&vop, core::vec_id::write_access::dx); acc.realloc(&vop, !d_threadSafeVisitor.getValue(), true); // dx is no longer allocated by default (but it will be deleted automatically by the mechanical objects) { SCOPED_TIMER("ComputeForce"); @@ -144,7 +144,7 @@ void VariationalSymplecticSolver::solve(const core::ExecParams* params, SReal dt mop.accFromF(acc, f); // acc= 1/m (f(q(k)+p(k)/h)) if (rM>0) { - MultiVecDeriv oldVel(&vop, core::VecDerivId::velocity() ); + MultiVecDeriv oldVel(&vop, core::vec_id::write_access::velocity ); // add rayleigh Mass damping if necessary acc.peq(oldVel,-rM); // equivalent to adding damping force -rM* M*v(k) } diff --git a/Sofa/Component/ODESolver/Backward/tests/EulerImplicitSolverDynamic_test.cpp b/Sofa/Component/ODESolver/Backward/tests/EulerImplicitSolverDynamic_test.cpp index bec03c1f10f..d0a0fe377ee 100644 --- a/Sofa/Component/ODESolver/Backward/tests/EulerImplicitSolverDynamic_test.cpp +++ b/Sofa/Component/ODESolver/Backward/tests/EulerImplicitSolverDynamic_test.cpp @@ -119,7 +119,7 @@ struct EulerImplicitDynamic_test : public component::odesolver::testing::ODESolv do { // Record the mass position - Coord p0=dofs.get()->read(sofa::core::ConstVecCoordId::position())->getValue()[0]; + Coord p0=dofs.get()->read(sofa::core::vec_id::read_access::position)->getValue()[0]; double absoluteError = fabs(p0[1]-positionsArray[i]); diff --git a/Sofa/Component/ODESolver/Backward/tests/EulerImplicitSolver_withDamping_test.cpp b/Sofa/Component/ODESolver/Backward/tests/EulerImplicitSolver_withDamping_test.cpp index 26e9791231a..dc1089ed0a7 100644 --- a/Sofa/Component/ODESolver/Backward/tests/EulerImplicitSolver_withDamping_test.cpp +++ b/Sofa/Component/ODESolver/Backward/tests/EulerImplicitSolver_withDamping_test.cpp @@ -105,7 +105,7 @@ struct EulerImplicit_with_damping_forcefield : public BaseSimulationTest, Numeri // access the MechanicalObect (access position of the dampedParticule) typename MechanicalObject::SPtr dofs = dampedParticule->get>(root->SearchDown); - sofa::defaulttype::Vec3dTypes::Coord position = dofs.get()->read(sofa::core::ConstVecCoordId::position())->getValue()[0]; + sofa::defaulttype::Vec3dTypes::Coord position = dofs.get()->read(sofa::core::vec_id::read_access::position)->getValue()[0]; // save it as Vec3d for comparison with expected result Vec3d finalPosition(position[0], position[1], position[2]); diff --git a/Sofa/Component/ODESolver/Backward/tests/NewmarkImplicitSolverDynamic_test.cpp b/Sofa/Component/ODESolver/Backward/tests/NewmarkImplicitSolverDynamic_test.cpp index 092a5e781fc..82922f25323 100644 --- a/Sofa/Component/ODESolver/Backward/tests/NewmarkImplicitSolverDynamic_test.cpp +++ b/Sofa/Component/ODESolver/Backward/tests/NewmarkImplicitSolverDynamic_test.cpp @@ -133,7 +133,7 @@ struct NewmarkImplicitDynamic_test : public component::odesolver::testing::ODESo do { // Record the mass position - Coord p0=dofs.get()->read(sofa::core::ConstVecCoordId::position())->getValue()[0]; + Coord p0=dofs.get()->read(sofa::core::vec_id::read_access::position)->getValue()[0]; double absoluteError = fabs(p0[1]-positionsArray[i]); diff --git a/Sofa/Component/ODESolver/Backward/tests/SpringSolverDynamic_test.cpp b/Sofa/Component/ODESolver/Backward/tests/SpringSolverDynamic_test.cpp index ce4ab459c71..1425fb39be1 100644 --- a/Sofa/Component/ODESolver/Backward/tests/SpringSolverDynamic_test.cpp +++ b/Sofa/Component/ODESolver/Backward/tests/SpringSolverDynamic_test.cpp @@ -92,7 +92,7 @@ struct SpringSolverDynamic_test : public NumericTest do { // Record the mass position - Coord p0=dofs.get()->read(sofa::core::ConstVecCoordId::position())->getValue()[0]; + Coord p0=dofs.get()->read(sofa::core::vec_id::read_access::position)->getValue()[0]; // Absolute error double absoluteError = fabs(p0[1]-(cos(w*time))); diff --git a/Sofa/Component/ODESolver/Backward/tests/VariationalSymplecticExplicitSolverDynamic_test.cpp b/Sofa/Component/ODESolver/Backward/tests/VariationalSymplecticExplicitSolverDynamic_test.cpp index 5164f0a4d92..d002cc9af83 100644 --- a/Sofa/Component/ODESolver/Backward/tests/VariationalSymplecticExplicitSolverDynamic_test.cpp +++ b/Sofa/Component/ODESolver/Backward/tests/VariationalSymplecticExplicitSolverDynamic_test.cpp @@ -125,7 +125,7 @@ struct VariationalSymplecticExplicitSolverDynamic_test : public component::odeso do { // Record the mass position - Coord p0=dofs.get()->read(sofa::core::ConstVecCoordId::position())->getValue()[0]; + Coord p0=dofs.get()->read(sofa::core::vec_id::read_access::position)->getValue()[0]; double absoluteError = fabs(p0[1]-positionsArray[i]); diff --git a/Sofa/Component/ODESolver/Backward/tests/VariationalSymplecticImplicitSolverDynamic_test.cpp b/Sofa/Component/ODESolver/Backward/tests/VariationalSymplecticImplicitSolverDynamic_test.cpp index dfed7294f3e..e0c21b0c99b 100644 --- a/Sofa/Component/ODESolver/Backward/tests/VariationalSymplecticImplicitSolverDynamic_test.cpp +++ b/Sofa/Component/ODESolver/Backward/tests/VariationalSymplecticImplicitSolverDynamic_test.cpp @@ -147,7 +147,7 @@ struct VariationalSymplecticImplicitSolverDynamic_test : public component::odeso do { // Record the mass position - Coord p0=dofs.get()->read(sofa::core::ConstVecCoordId::position())->getValue()[0]; + Coord p0=dofs.get()->read(sofa::core::vec_id::read_access::position)->getValue()[0]; double absoluteError = fabs(p0[1]-positionsArray[i]); diff --git a/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/CentralDifferenceSolver.cpp b/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/CentralDifferenceSolver.cpp index 6bd37b851d4..9204dcc8f63 100644 --- a/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/CentralDifferenceSolver.cpp +++ b/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/CentralDifferenceSolver.cpp @@ -79,12 +79,12 @@ void CentralDifferenceSolver::solve(const core::ExecParams* params, SReal dt, so sofa::simulation::common::VectorOperations vop( params, this->getContext() ); sofa::simulation::common::MechanicalOperations mop( params, this->getContext() ); mop->setImplicit(false); // this solver is explicit only - MultiVecCoord pos(&vop, core::VecCoordId::position() ); - MultiVecDeriv vel(&vop, core::VecDerivId::velocity() ); - MultiVecCoord pos2(&vop, xResult /*core::VecCoordId::position()*/ ); - MultiVecDeriv vel2(&vop, vResult /*core::VecDerivId::velocity()*/ ); - MultiVecDeriv dx(&vop, core::VecDerivId::dx()); dx.realloc(&vop, !d_threadSafeVisitor.getValue(), true); - MultiVecDeriv f (&vop, core::VecDerivId::force() ); + MultiVecCoord pos(&vop, core::vec_id::write_access::position ); + MultiVecDeriv vel(&vop, core::vec_id::write_access::velocity ); + MultiVecCoord pos2(&vop, xResult /*core::vec_id::write_access::position*/ ); + MultiVecDeriv vel2(&vop, vResult /*core::vec_id::write_access::velocity*/ ); + MultiVecDeriv dx(&vop, core::vec_id::write_access::dx); dx.realloc(&vop, !d_threadSafeVisitor.getValue(), true); + MultiVecDeriv f (&vop, core::vec_id::write_access::force ); const SReal r = d_rayleighMass.getValue(); diff --git a/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/DampVelocitySolver.cpp b/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/DampVelocitySolver.cpp index c82d4a05790..1590035c551 100644 --- a/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/DampVelocitySolver.cpp +++ b/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/DampVelocitySolver.cpp @@ -47,7 +47,7 @@ DampVelocitySolver::DampVelocitySolver() void DampVelocitySolver::solve(const core::ExecParams* params, SReal dt, sofa::core::MultiVecCoordId /*xResult*/, sofa::core::MultiVecDerivId vResult) { sofa::simulation::common::VectorOperations vop( params, this->getContext() ); - MultiVecDeriv vel(&vop, vResult /*core::VecDerivId::velocity()*/ ); + MultiVecDeriv vel(&vop, vResult /*core::vec_id::write_access::velocity*/ ); msg_info() <<"DampVelocitySolver, dt = "<< dt <<"DampVelocitySolver, initial v = "<< vel ; diff --git a/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/EulerExplicitSolver.cpp b/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/EulerExplicitSolver.cpp index b9ccad03a69..ebf86e5ed79 100644 --- a/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/EulerExplicitSolver.cpp +++ b/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/EulerExplicitSolver.cpp @@ -76,8 +76,8 @@ void EulerExplicitSolver::solve(const core::ExecParams* params, mop->setImplicit(false); // Initialize the set of multi-vectors computed by this solver - MultiVecDeriv acc (&vop, core::VecDerivId::dx()); // acceleration to be computed - MultiVecDeriv f (&vop, core::VecDerivId::force() ); // force to be computed + MultiVecDeriv acc (&vop, core::vec_id::write_access::dx); // acceleration to be computed + MultiVecDeriv f (&vop, core::vec_id::write_access::force ); // force to be computed acc.realloc(&vop, !d_threadSafeVisitor.getValue(), true); @@ -140,8 +140,8 @@ void EulerExplicitSolver::updateState(sofa::simulation::common::VectorOperations MultiVecDeriv newVel(vop, vResult); // position to be computed // Initialize the set of multi-vectors used to compute the new velocity and position - MultiVecCoord pos(vop, core::VecCoordId::position() ); //current position - MultiVecDeriv vel(vop, core::VecDerivId::velocity() ); //current velocity + MultiVecCoord pos(vop, core::vec_id::write_access::position ); //current position + MultiVecDeriv vel(vop, core::vec_id::write_access::velocity ); //current velocity #ifdef SOFA_NO_VMULTIOP // unoptimized version if (d_symplectic.getValue()) diff --git a/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/RungeKutta2Solver.cpp b/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/RungeKutta2Solver.cpp index c395c262151..7eefc5dc953 100644 --- a/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/RungeKutta2Solver.cpp +++ b/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/RungeKutta2Solver.cpp @@ -46,10 +46,10 @@ void RungeKutta2Solver::solve(const core::ExecParams* params, SReal dt, sofa::co sofa::simulation::common::MechanicalOperations mop( params, this->getContext() ); mop->setImplicit(false); // this solver is explicit only // Get the Ids of the state vectors - MultiVecCoord pos(&vop, core::VecCoordId::position() ); - MultiVecDeriv vel(&vop, core::VecDerivId::velocity() ); - MultiVecCoord pos2(&vop, xResult /*core::VecCoordId::position()*/ ); - MultiVecDeriv vel2(&vop, vResult /*core::VecDerivId::velocity()*/ ); + MultiVecCoord pos(&vop, core::vec_id::write_access::position ); + MultiVecDeriv vel(&vop, core::vec_id::write_access::velocity ); + MultiVecCoord pos2(&vop, xResult /*core::vec_id::write_access::position*/ ); + MultiVecDeriv vel2(&vop, vResult /*core::vec_id::write_access::velocity*/ ); // Allocate auxiliary vectors MultiVecDeriv acc(&vop); diff --git a/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/RungeKutta4Solver.cpp b/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/RungeKutta4Solver.cpp index 02fb117ec02..2d643eda0d4 100644 --- a/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/RungeKutta4Solver.cpp +++ b/Sofa/Component/ODESolver/Forward/src/sofa/component/odesolver/forward/RungeKutta4Solver.cpp @@ -47,10 +47,10 @@ void RungeKutta4Solver::solve(const core::ExecParams* params, SReal dt, sofa::co sofa::simulation::common::MechanicalOperations mop( params, this->getContext() ); mop->setImplicit(false); // this solver is explicit only // Get the Ids of the state vectors - MultiVecCoord pos(&vop, core::VecCoordId::position() ); - MultiVecDeriv vel(&vop, core::VecDerivId::velocity() ); - MultiVecCoord pos2(&vop, xResult /*core::VecCoordId::position()*/ ); - MultiVecDeriv vel2(&vop, vResult /*core::VecDerivId::velocity()*/ ); + MultiVecCoord pos(&vop, core::vec_id::write_access::position ); + MultiVecDeriv vel(&vop, core::vec_id::write_access::velocity ); + MultiVecCoord pos2(&vop, xResult /*core::vec_id::write_access::position*/ ); + MultiVecDeriv vel2(&vop, vResult /*core::vec_id::write_access::velocity*/ ); // Allocate auxiliary vectors MultiVecDeriv k1a(&vop); diff --git a/Sofa/Component/ODESolver/Forward/tests/CentralDifferenceExplicitSolverDynamic_test.cpp b/Sofa/Component/ODESolver/Forward/tests/CentralDifferenceExplicitSolverDynamic_test.cpp index 54728aa702e..d285140199c 100644 --- a/Sofa/Component/ODESolver/Forward/tests/CentralDifferenceExplicitSolverDynamic_test.cpp +++ b/Sofa/Component/ODESolver/Forward/tests/CentralDifferenceExplicitSolverDynamic_test.cpp @@ -151,7 +151,7 @@ struct CentralDifferenceExplicitSolverDynamic_test : public component::odesolver do { // Record the mass position - Coord p0=dofs.get()->read(sofa::core::ConstVecCoordId::position())->getValue()[0]; + Coord p0=dofs.get()->read(sofa::core::vec_id::read_access::position)->getValue()[0]; double absoluteError = fabs(p0[1]-positionsArray[i]); diff --git a/Sofa/Component/ODESolver/Forward/tests/EulerExplicitSolverDynamic_test.cpp b/Sofa/Component/ODESolver/Forward/tests/EulerExplicitSolverDynamic_test.cpp index 13b9996e99f..f6a13eb435f 100644 --- a/Sofa/Component/ODESolver/Forward/tests/EulerExplicitSolverDynamic_test.cpp +++ b/Sofa/Component/ODESolver/Forward/tests/EulerExplicitSolverDynamic_test.cpp @@ -118,7 +118,7 @@ struct EulerExplicitDynamic_test : public component::odesolver::testing::ODESolv do { // Record the mass position - Coord p0=dofs.get()->read(sofa::core::ConstVecCoordId::position())->getValue()[0]; + Coord p0=dofs.get()->read(sofa::core::vec_id::read_access::position)->getValue()[0]; double absoluteError = fabs(p0[1]-positionsArray[i]); diff --git a/Sofa/Component/ODESolver/Forward/tests/RungeKutta2ExplicitSolverDynamic_test.cpp b/Sofa/Component/ODESolver/Forward/tests/RungeKutta2ExplicitSolverDynamic_test.cpp index a14d872f70c..683e546b8fa 100644 --- a/Sofa/Component/ODESolver/Forward/tests/RungeKutta2ExplicitSolverDynamic_test.cpp +++ b/Sofa/Component/ODESolver/Forward/tests/RungeKutta2ExplicitSolverDynamic_test.cpp @@ -133,7 +133,7 @@ struct RungeKutta2ExplicitSolverDynamic_test : public component::odesolver::test do { // Record the mass position - Coord p0=dofs.get()->read(sofa::core::ConstVecCoordId::position())->getValue()[0]; + Coord p0=dofs.get()->read(sofa::core::vec_id::read_access::position)->getValue()[0]; double absoluteError = fabs(p0[1]-positionsArray[i]); diff --git a/Sofa/Component/ODESolver/Forward/tests/RungeKutta4ExplicitSolverDynamic_test.cpp b/Sofa/Component/ODESolver/Forward/tests/RungeKutta4ExplicitSolverDynamic_test.cpp index 6324580e9b5..eddbfaa0338 100644 --- a/Sofa/Component/ODESolver/Forward/tests/RungeKutta4ExplicitSolverDynamic_test.cpp +++ b/Sofa/Component/ODESolver/Forward/tests/RungeKutta4ExplicitSolverDynamic_test.cpp @@ -169,7 +169,7 @@ struct RungeKutta4ExplicitSolverDynamic_test : public component::odesolver::test do { // Record the mass position - Coord p0=dofs.get()->read(sofa::core::ConstVecCoordId::position())->getValue()[0]; + Coord p0=dofs.get()->read(sofa::core::vec_id::read_access::position)->getValue()[0]; double absoluteError = fabs(p0[1]-positionsArray[i]); diff --git a/Sofa/Component/Playback/src/sofa/component/playback/CompareState.cpp b/Sofa/Component/Playback/src/sofa/component/playback/CompareState.cpp index 124d86d4d21..fab90dd10cf 100644 --- a/Sofa/Component/Playback/src/sofa/component/playback/CompareState.cpp +++ b/Sofa/Component/Playback/src/sofa/component/playback/CompareState.cpp @@ -216,7 +216,7 @@ void CompareState::draw(const core::visual::VisualParams* vparams) str >> cmd; mmodel->readVec(refX, str); - const core::objectmodel::BaseData* dataX = mmodel->baseRead(core::VecCoordId::position()); + const core::objectmodel::BaseData* dataX = mmodel->baseRead(core::vec_id::write_access::position); const core::objectmodel::BaseData* dataRefX = mmodel->baseRead(refX); if (dataX && dataRefX) { diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/BeamFEMForceField.inl b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/BeamFEMForceField.inl index e0082b1c3b6..d7aa2c49ebc 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/BeamFEMForceField.inl +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/BeamFEMForceField.inl @@ -150,7 +150,7 @@ void BeamFEMForceField::reinitBeam(Index i) SReal stiffness, length, radius, poisson, radiusInner; const auto& [a, b] = (*m_indexedElements)[i].array(); - const VecCoord& x0 = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x0 = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); stiffness = this->getYoungModulusInElement(i); length = (x0[a].getCenter()-x0[b].getCenter()).norm() ; @@ -340,7 +340,7 @@ inline type::Quat qDiff(type::Quat a, const type::Quat& b) template void BeamFEMForceField::initLarge(int i, Index a, Index b) { - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); type::Quat quatA, quatB, dQ; Vec3 dW; @@ -379,7 +379,7 @@ void BeamFEMForceField::initLarge(int i, Index a, Index b) template void BeamFEMForceField::accumulateForceLarge( VecDeriv& f, const VecCoord & x, int i, Index a, Index b ) { - const VecCoord& x0 = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x0 = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); beamQuat(i)= x[a].getOrientation(); beamQuat(i).normalize(); @@ -706,7 +706,7 @@ void BeamFEMForceField::draw(const core::visual::VisualParams* vparam const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); std::vector< type::Vec3 > points[3]; @@ -742,7 +742,7 @@ void BeamFEMForceField::computeBBox(const core::ExecParams* params, b const size_t npoints = this->mstate->getSize(); - const VecCoord& p = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p = this->mstate->read(core::vec_id::read_access::position)->getValue(); for (size_t i=0; i::createTetrahedronRestInfo typename DataTypes::Real volume,val; typename DataTypes::Coord point[4]; //shapeVector[4]; - const typename DataTypes::VecCoord restPosition=this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const typename DataTypes::VecCoord restPosition=this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); ///describe the indices of the 4 tetrahedron vertices const Tetrahedron &t= tetrahedronArray[tetrahedronIndex]; @@ -215,7 +215,7 @@ void FastTetrahedralCorotationalForceField::init() if (_initialPoints.size() == 0) { // get restPosition - const VecCoord& p = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& p = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); _initialPoints=p; } @@ -677,7 +677,7 @@ void FastTetrahedralCorotationalForceField::draw(const core::visual:: const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); if (vparams->displayFlags().getShowWireFrame()) vparams->drawTool()->setPolygonMode(0, true); diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedralFEMForceField.inl b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedralFEMForceField.inl index 004643416b1..bd2e5cf3d83 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedralFEMForceField.inl +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedralFEMForceField.inl @@ -386,7 +386,7 @@ void HexahedralFEMForceField::initLarge(const int i) // second vector in the plane of the two first edges // third vector orthogonal to first and second - const VecCoord& X0=this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& X0=this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); type::Vec<8,Coord> nodes; for(int w=0; w<8; ++w) @@ -486,7 +486,7 @@ void HexahedralFEMForceField::accumulateForceLarge( WDataRefVecDeriv& template void HexahedralFEMForceField::initPolar(const int i) { - const VecCoord& X0=this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& X0=this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); type::Vec<8,Coord> nodes; for(int j=0; j<8; ++j) @@ -668,7 +668,7 @@ void HexahedralFEMForceField::draw(const core::visual::VisualParams* std::vector colorVector; std::vector vertices; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); if (vparams->displayFlags().getShowWireFrame()) { diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedralFEMForceFieldAndMass.inl b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedralFEMForceFieldAndMass.inl index f516deee8dc..a1caaa2e893 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedralFEMForceFieldAndMass.inl +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedralFEMForceFieldAndMass.inl @@ -135,7 +135,7 @@ void HexahedralFEMForceFieldAndMass::computeLumpedMasses( ) template void HexahedralFEMForceFieldAndMass::computeElementMasses( ) { - const VecCoord& initialPoints = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& initialPoints = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); const VecElement& hexahedra = this->l_topology->getHexahedra(); @@ -457,7 +457,7 @@ void HexahedralFEMForceFieldAndMass::draw(const core::visual::VisualP if (!vparams->displayFlags().getShowBehaviorModels()) return; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); std::vector pos; pos.reserve(x.size()); diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedronFEMForceField.inl b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedronFEMForceField.inl index 5c1f4fe5d05..4fc06689e2c 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedronFEMForceField.inl +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedronFEMForceField.inl @@ -139,7 +139,7 @@ void HexahedronFEMForceField::init() template void HexahedronFEMForceField::reinit() { - const VecCoord& p = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& p = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); d_initialPoints.setValue(p); _materialsStiffnesses.resize(this->getIndexedElements()->size() ); @@ -1197,7 +1197,7 @@ void HexahedronFEMForceField::computeBBox(const core::ExecParams* par if( !onlyVisible ) return; - helper::ReadAccessor x = this->mstate->read(core::VecCoordId::position()); + helper::ReadAccessor x = this->mstate->read(core::vec_id::write_access::position); static const Real max_real = std::numeric_limits::max(); static const Real min_real = std::numeric_limits::lowest(); @@ -1227,7 +1227,7 @@ void HexahedronFEMForceField::draw(const core::visual::VisualParams* const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); vparams->drawTool()->setLightingEnabled(false); diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedronFEMForceFieldAndMass.inl b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedronFEMForceFieldAndMass.inl index 59010e9d900..a06b21128b0 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedronFEMForceFieldAndMass.inl +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/HexahedronFEMForceFieldAndMass.inl @@ -350,7 +350,7 @@ void HexahedronFEMForceFieldAndMass::draw(const core::visual::VisualP if (!vparams->displayFlags().getShowBehaviorModels()) return; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); // since drawTool requires a std::vector we have to convert x in an ugly way std::vector pos; pos.resize(x.size()); diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/QuadBendingFEMForceField.inl b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/QuadBendingFEMForceField.inl index add56877b76..2439b38ea7e 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/QuadBendingFEMForceField.inl +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/QuadBendingFEMForceField.inl @@ -149,7 +149,7 @@ void QuadBendingFEMForceField::initSmall(int i, Index&a, Index&b, Ind Coord IntlengthElement; Coord IntheightElement; - const VecCoord& initialPoints = (this->mstate->read(core::ConstVecCoordId::restPosition())->getValue()); + const VecCoord& initialPoints = (this->mstate->read(core::vec_id::read_access::restPosition)->getValue()); qinfo->IntlengthElement = (initialPoints)[b] - (initialPoints)[a]; qinfo->IntheightElement = (initialPoints)[d] - (initialPoints)[a]; qinfo->Intcentroid = ((initialPoints)[a] + (initialPoints)[c]) / 2; @@ -441,7 +441,7 @@ template void QuadBendingFEMForceField::computeElementStiffness( Stiffness &K, Index elementIndex) { type::vector& quadInf = *(d_quadInfo.beginEdit()); - const VecCoord& p = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p = this->mstate->read(core::vec_id::read_access::position)->getValue(); //QuadInformation *qinfo = &quadInf[elementIndex]; Index idx0 = m_topology->getQuad(elementIndex)[0]; diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TetrahedralCorotationalFEMForceField.inl b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TetrahedralCorotationalFEMForceField.inl index 7ae0a6e3ce4..0952d6c8f91 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TetrahedralCorotationalFEMForceField.inl +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TetrahedralCorotationalFEMForceField.inl @@ -402,7 +402,7 @@ void TetrahedralCorotationalFEMForceField::computeMaterialStiffness(i materialMatrix *= (youngModulus*(1-poissonRatio))/((1+poissonRatio)*(1-2*poissonRatio)); // divide by 36 times volumes of the element - const VecCoord X0=this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord X0=this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); Coord A = (X0)[b] - (X0)[a]; Coord B = (X0)[c] - (X0)[a]; @@ -627,7 +627,7 @@ inline void TetrahedralCorotationalFEMForceField::computeForce( Displ template void TetrahedralCorotationalFEMForceField::initSmall(int i, Index&a, Index&b, Index&c, Index&d) { - const VecCoord X0=this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord X0=this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); type::vector::TetrahedronInformation>& tetrahedronInf = *(d_tetrahedronInfo.beginEdit()); @@ -643,7 +643,7 @@ void TetrahedralCorotationalFEMForceField::accumulateForceSmall( Vect { const core::topology::BaseMeshTopology::Tetrahedron t=this->l_topology->getTetrahedron(elementIndex); - const VecCoord& X0=this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& X0=this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); const auto& [a, b, c, d] = t.array(); @@ -867,7 +867,7 @@ void TetrahedralCorotationalFEMForceField::initLarge(int i, Index&a, // first vector on first edge // second vector in the plane of the two first edges // third vector orthogonal to first and second - const VecCoord& X0=this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& X0=this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); Transformation R_0_1; computeRotationLarge( R_0_1, (X0), a, b, c); @@ -1069,7 +1069,7 @@ void TetrahedralCorotationalFEMForceField::applyStiffnessLarge( Vecto template void TetrahedralCorotationalFEMForceField::initPolar(int i, Index& a, Index&b, Index&c, Index&d) { - const VecCoord X0=this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord X0=this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); type::vector::TetrahedronInformation>& tetrahedronInf = *(d_tetrahedronInfo.beginEdit()); @@ -1204,7 +1204,7 @@ void TetrahedralCorotationalFEMForceField::computeBBox(const core::Ex if( !onlyVisible ) return; - helper::ReadAccessor x = this->mstate->read(core::VecCoordId::position()); + helper::ReadAccessor x = this->mstate->read(core::vec_id::write_access::position); static const Real max_real = std::numeric_limits::max(); static const Real min_real = std::numeric_limits::lowest(); @@ -1338,7 +1338,7 @@ void TetrahedralCorotationalFEMForceField::draw(const core::visual::V const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); if (vparams->displayFlags().getShowWireFrame()) vparams->drawTool()->setPolygonMode(0,true); diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TetrahedronFEMForceField.inl b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TetrahedronFEMForceField.inl index 4a5ce9bfb61..9e3543655af 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TetrahedronFEMForceField.inl +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TetrahedronFEMForceField.inl @@ -1441,7 +1441,7 @@ inline void TetrahedronFEMForceField::reinit() } setMethod(d_method.getValue() ); - const VecCoord& p = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& p = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); d_initialPoints.setValue(p); strainDisplacements.resize( _indexedElements->size() ); materialsStiffnesses.resize(_indexedElements->size() ); @@ -1678,7 +1678,7 @@ void TetrahedronFEMForceField::computeBBox(const core::ExecParams*, b if( !onlyVisible ) return; if (!this->mstate) return; - helper::ReadAccessor x = this->mstate->read(core::VecCoordId::position()); + helper::ReadAccessor x = this->mstate->read(core::vec_id::write_access::position); static const Real max_real = std::numeric_limits::max(); static const Real min_real = std::numeric_limits::lowest(); @@ -1860,7 +1860,7 @@ void TetrahedronFEMForceField::draw(const core::visual::VisualParams* vparams->drawTool()->disableLighting(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); const VecReal& youngModulus = this->d_youngModulus.getValue(); const bool heterogeneous = [this, drawVonMisesStress]() @@ -1925,7 +1925,7 @@ void TetrahedronFEMForceField::draw(const core::visual::VisualParams* ////////////// DRAW ROTATIONS ////////////// if (vparams->displayFlags().getShowNormals()) { - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); std::vector< type::Vec3 > points[3]; for(unsigned ii = 0; ii< x.size() ; ii++) { @@ -2250,7 +2250,7 @@ void TetrahedronFEMForceField::computeVonMisesStress() typename core::behavior::MechanicalState* mechanicalObject; this->getContext()->get(mechanicalObject); - const VecCoord& X = mechanicalObject->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& X = mechanicalObject->read(core::vec_id::read_access::position)->getValue(); helper::ReadAccessor > X0 = d_initialPoints; @@ -2397,7 +2397,7 @@ void TetrahedronFEMForceField::computeVonMisesStress() vME[el] = 0.0; } - const VecCoord& dofs = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& dofs = this->mstate->read(core::vec_id::read_access::position)->getValue(); helper::WriteAccessor > > vMN = d_vonMisesPerNode; /// compute the values of vonMises stress in nodes diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TriangleFEMForceField.inl b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TriangleFEMForceField.inl index a05b2ba75a0..13ec574a40d 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TriangleFEMForceField.inl +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TriangleFEMForceField.inl @@ -95,7 +95,7 @@ void TriangleFEMForceField::init() if (d_initialPoints.getValue().size() == 0) { - const VecCoord& p = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& p = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); d_initialPoints.setValue(p); } @@ -558,7 +558,7 @@ void TriangleFEMForceField::draw(const core::visual::VisualParams* vp std::vector colorVector; std::vector vertices; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); typename VecElement::const_iterator it; for (it = _indexedElements->begin(); it != _indexedElements->end(); ++it) diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TriangularAnisotropicFEMForceField.inl b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TriangularAnisotropicFEMForceField.inl index a7ff547c05f..9357c4fe811 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TriangularAnisotropicFEMForceField.inl +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TriangularAnisotropicFEMForceField.inl @@ -141,7 +141,7 @@ void TriangularAnisotropicFEMForceField::getFiberDir(int element, Der if ((unsigned)element < lfd.size()) { const Deriv& ref = lfd[element]; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); core::topology::BaseMeshTopology::Triangle t = this->l_topology->getTriangle(element); dir = (x[t[1]]-x[t[0]])*ref[0] + (x[t[2]]-x[t[0]])*ref[1]; } @@ -155,7 +155,7 @@ void TriangularAnisotropicFEMForceField::getFiberDir(int element, Der template void TriangularAnisotropicFEMForceField::computeMaterialStiffness(int i, Index& v1, Index& v2, Index& v3) { - const VecCoord& initialPoints = (this->mstate->read(core::ConstVecCoordId::restPosition())->getValue()); + const VecCoord& initialPoints = (this->mstate->read(core::vec_id::read_access::restPosition)->getValue()); Real Q11, Q12, Q22, Q66; Coord fiberDirGlobal; // orientation of the fiber in the global frame of reference @@ -314,7 +314,7 @@ void TriangularAnisotropicFEMForceField::draw(const core::visual::Vis constexpr sofa::type::RGBAColor color = sofa::type::RGBAColor::black(); std::vector vertices; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); const int nbTriangles=this->l_topology->getNbTriangles(); for(int i=0; i::initSmall(int i, Index& a, Index& b, In tinfo->rotatedInitialElements = d_rotatedInitialElements.getValue()[i]; else { - const VecCoord& initialPoints = (this->mstate->read(core::ConstVecCoordId::restPosition())->getValue()); + const VecCoord& initialPoints = (this->mstate->read(core::vec_id::read_access::restPosition)->getValue()); const Coord& pA = initialPoints[a]; const Coord& pB = initialPoints[b]; const Coord& pC = initialPoints[c]; @@ -211,7 +211,7 @@ void TriangularFEMForceField::initLarge(int i, Index& a, Index& b, In } else { - const VecCoord& initialPoints = (this->mstate->read(core::ConstVecCoordId::restPosition())->getValue()); + const VecCoord& initialPoints = (this->mstate->read(core::vec_id::read_access::restPosition)->getValue()); tinfo->rotation = tinfo->initialTransformation; if (a >= (initialPoints).size() || b >= (initialPoints).size() || c >= (initialPoints).size()) { @@ -757,7 +757,7 @@ void TriangularFEMForceField::computeStress(type::Vec<3, Real>& stres StrainDisplacement J; type::Vec<3, Real> strain; Transformation R_0_2, R_2_0; - const VecCoord& p = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p = this->mstate->read(core::vec_id::read_access::position)->getValue(); const Triangle& tri = this->l_topology->getTriangle(elementIndex); const auto& [a, b, c] = tri.array(); @@ -879,7 +879,7 @@ void TriangularFEMForceField::computeStressAcrossDirection(Real& stre { const Triangle& tri = this->l_topology->getTriangle(elementIndex); const auto& [a, b, c] = tri.array(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); Coord n = cross(x[b] - x[a], x[c] - x[a]); Coord dir_t = cross(dir, n); this->computeStressAlongDirection(stress_across_dir, elementIndex, dir_t, stress); @@ -890,7 +890,7 @@ void TriangularFEMForceField::computeStressAcrossDirection(Real& stre { const Triangle& tri = this->l_topology->getTriangle(elementIndex); const auto& [a, b, c] = tri.array(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); Coord n = cross(x[b] - x[a], x[c] - x[a]); Coord dir_t = cross(dir, n); this->computeStressAlongDirection(stress_across_dir, elementIndex, dir_t); @@ -1242,7 +1242,7 @@ void TriangularFEMForceField::draw(const core::visual::VisualParams* vparams->drawTool()->disableLighting(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); const type::vector& triangleInf = d_triangleInfo.getValue(); const auto& triangles = this->l_topology->getTriangles(); const Size nbTriangles = triangles.size(); diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TriangularFEMForceFieldOptim.inl b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TriangularFEMForceFieldOptim.inl index 3259d22b7dd..7a20cbfd300 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TriangularFEMForceFieldOptim.inl +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/TriangularFEMForceFieldOptim.inl @@ -180,13 +180,13 @@ void TriangularFEMForceFieldOptim::initTriangleState(Index i, Triangl template< class DataTypes> void TriangularFEMForceFieldOptim::createTriangleInfo(Index triangleIndex, TriangleInfo& ti, const Triangle& t, const sofa::type::vector&, const sofa::type::vector&) { - initTriangleInfo(triangleIndex, ti, t, this->mstate->read(core::ConstVecCoordId::restPosition())->getValue()); + initTriangleInfo(triangleIndex, ti, t, this->mstate->read(core::vec_id::read_access::restPosition)->getValue()); } template< class DataTypes> void TriangularFEMForceFieldOptim::createTriangleState(Index triangleIndex, TriangleState& ti, const Triangle& t, const sofa::type::vector&, const sofa::type::vector&) { - initTriangleState(triangleIndex, ti, t, this->mstate->read(core::ConstVecCoordId::position())->getValue()); + initTriangleState(triangleIndex, ti, t, this->mstate->read(core::vec_id::read_access::position)->getValue()); } // -------------------------------------------------------------------------------------- @@ -198,8 +198,8 @@ void TriangularFEMForceFieldOptim::reinit() /// prepare to store info in the triangle array const unsigned int nbTriangles = this->l_topology->getNbTriangles(); const VecElement& triangles = this->l_topology->getTriangles(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& x0 = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& x0 = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); VecTriangleInfo& triangleInf = *(d_triangleInfo.beginEdit()); VecTriangleState& triangleSta = *(d_triangleState.beginEdit()); triangleInf.resize(nbTriangles); @@ -770,7 +770,7 @@ void TriangularFEMForceFieldOptim::draw(const core::visual::VisualPar using type::Vec3i; using type::Vec4f; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); unsigned int nbTriangles=this->l_topology->getNbTriangles(); const VecElement& triangles = this->l_topology->getTriangles(); const Real& stressThresold = d_showStressThreshold.getValue(); diff --git a/Sofa/Component/SolidMechanics/FEM/HyperElastic/src/sofa/component/solidmechanics/fem/hyperelastic/StandardTetrahedralFEMForceField.inl b/Sofa/Component/SolidMechanics/FEM/HyperElastic/src/sofa/component/solidmechanics/fem/hyperelastic/StandardTetrahedralFEMForceField.inl index c7ce2017fa6..ed8d2eaafd7 100644 --- a/Sofa/Component/SolidMechanics/FEM/HyperElastic/src/sofa/component/solidmechanics/fem/hyperelastic/StandardTetrahedralFEMForceField.inl +++ b/Sofa/Component/SolidMechanics/FEM/HyperElastic/src/sofa/component/solidmechanics/fem/hyperelastic/StandardTetrahedralFEMForceField.inl @@ -169,7 +169,7 @@ template void StandardTetrahedralFEMForceField::ini if (_initialPoints.size() == 0) { - const VecCoord& p = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& p = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); _initialPoints=p; } @@ -209,7 +209,7 @@ void StandardTetrahedralFEMForceField::createTetrahedronRestInformati unsigned int j; typename DataTypes::Real volume; typename DataTypes::Coord point[4]; - const typename DataTypes::VecCoord restPosition = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const typename DataTypes::VecCoord restPosition = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); ///describe the indices of the 4 tetrahedron vertices const core::topology::BaseMeshTopology::Tetrahedron& t = tetrahedronArray[tetrahedronIndex]; @@ -607,7 +607,7 @@ void StandardTetrahedralFEMForceField::draw(const core::visual::Visua const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); if (vparams->displayFlags().getShowWireFrame()) vparams->drawTool()->setPolygonMode(0,true); @@ -625,7 +625,7 @@ void StandardTetrahedralFEMForceField::testDerivatives() { DataVecCoord d_pos; VecCoord &pos = *d_pos.beginEdit(); - pos = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + pos = this->mstate->read(core::vec_id::read_access::position)->getValue(); // perturb original state: srand( 0 ); @@ -748,7 +748,7 @@ void StandardTetrahedralFEMForceField::testDerivatives() template void StandardTetrahedralFEMForceField::saveMesh( const char *filename ) { - VecCoord pos( this->mstate->read(core::ConstVecCoordId::position())->getValue() ); + VecCoord pos( this->mstate->read(core::vec_id::read_access::position)->getValue() ); const core::topology::BaseMeshTopology::SeqTriangles triangles = m_topology->getTriangles(); FILE *file = fopen( filename, "wb" ); if (!file) return; diff --git a/Sofa/Component/SolidMechanics/FEM/HyperElastic/src/sofa/component/solidmechanics/fem/hyperelastic/TetrahedronHyperelasticityFEMForceField.inl b/Sofa/Component/SolidMechanics/FEM/HyperElastic/src/sofa/component/solidmechanics/fem/hyperelastic/TetrahedronHyperelasticityFEMForceField.inl index adc26351f83..34a5f4b2a51 100644 --- a/Sofa/Component/SolidMechanics/FEM/HyperElastic/src/sofa/component/solidmechanics/fem/hyperelastic/TetrahedronHyperelasticityFEMForceField.inl +++ b/Sofa/Component/SolidMechanics/FEM/HyperElastic/src/sofa/component/solidmechanics/fem/hyperelastic/TetrahedronHyperelasticityFEMForceField.inl @@ -183,7 +183,7 @@ template void TetrahedronHyperelasticityFEMForceFieldmstate->read(core::ConstVecCoordId::restPosition())->getValue(); + m_initialPoints = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); } /// initialize the data structure associated with each tetrahedron @@ -243,7 +243,7 @@ void TetrahedronHyperelasticityFEMForceField::createTetrahedronRestIn typename DataTypes::Real volume; typename DataTypes::Coord point[4]; - const VecCoord& restPosition = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& restPosition = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); ///describe the indices of the 4 tetrahedron vertices const Tetrahedron& t = tetrahedronArray[tetrahedronIndex]; @@ -599,7 +599,7 @@ void TetrahedronHyperelasticityFEMForceField::testDerivatives() { DataVecCoord d_pos; VecCoord &pos = *d_pos.beginEdit(); - pos = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + pos = this->mstate->read(core::vec_id::read_access::position)->getValue(); // perturb original state: srand( 0 ); @@ -752,7 +752,7 @@ void TetrahedronHyperelasticityFEMForceField::draw(const core::visual const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); if (vparams->displayFlags().getShowWireFrame()) vparams->drawTool()->setPolygonMode(0,true); diff --git a/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/HexahedronCompositeFEMForceFieldAndMass.inl b/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/HexahedronCompositeFEMForceFieldAndMass.inl index f4040250526..15d578c5cc6 100644 --- a/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/HexahedronCompositeFEMForceFieldAndMass.inl +++ b/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/HexahedronCompositeFEMForceFieldAndMass.inl @@ -1558,7 +1558,7 @@ void HexahedronCompositeFEMForceFieldAndMass::draw(const core::visual::Visual const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); sofa::type::RGBAColor colour; diff --git a/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/HexahedronCompositeFEMMapping.inl b/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/HexahedronCompositeFEMMapping.inl index 9f2c1dc90e5..ef8a4492aae 100644 --- a/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/HexahedronCompositeFEMMapping.inl +++ b/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/HexahedronCompositeFEMMapping.inl @@ -61,12 +61,12 @@ void HexahedronCompositeFEMMapping::init() for(unsigned i=0; i<(unsigned)this->toModel->getSize(); ++i) - _p0.push_back( this->toModel->read(core::ConstVecCoordId::position())->getValue()[i] ); + _p0.push_back( this->toModel->read(core::vec_id::read_access::position)->getValue()[i] ); for(unsigned i=0; i<(unsigned)this->fromModel->getSize(); ++i) // par construction de la sparse grid, pas de rotation initiale - _qCoarse0.push_back( this->fromModel->read(core::ConstVecCoordId::position())->getValue()[i] ); + _qCoarse0.push_back( this->fromModel->read(core::vec_id::read_access::position)->getValue()[i] ); - InCoord translation0 = this->fromModel->read(core::ConstVecCoordId::position())->getValue()[0] - _sparseGrid->getPointPos(0); + InCoord translation0 = this->fromModel->read(core::vec_id::read_access::position)->getValue()[0] - _sparseGrid->getPointPos(0); for(Size i=0; i<_finestSparseGrid->getNbPoints(); ++i) _qFine0.push_back( _finestSparseGrid->getPointPos(i)+translation0 ); diff --git a/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/NonUniformHexahedralFEMForceFieldAndMass.inl b/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/NonUniformHexahedralFEMForceFieldAndMass.inl index ea63fcf6c52..ac9b2e4e4e3 100644 --- a/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/NonUniformHexahedralFEMForceFieldAndMass.inl +++ b/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/NonUniformHexahedralFEMForceFieldAndMass.inl @@ -91,7 +91,7 @@ void NonUniformHexahedralFEMForceFieldAndMass::reinit() return; } - const VecCoord& X0=this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& X0=this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); type::Vec<8,Coord> nodesCoarse; for(int w=0; w<8; ++w) nodesCoarse[w] = (X0)[this->l_topology->getHexahedron(0)[w]]; @@ -428,7 +428,7 @@ template void NonUniformHexahedralFEMForceFieldAndMass::initLarge( const int i) { - const VecCoord& X0=this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& X0=this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); type::Vec<8,Coord> nodes; for(int w=0; w<8; ++w) @@ -463,7 +463,7 @@ template void NonUniformHexahedralFEMForceFieldAndMass::initPolar( const int i) { - const VecCoord& X0=this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& X0=this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); type::Vec<8,Coord> nodes; for(int j=0; j<8; ++j) diff --git a/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/NonUniformHexahedronFEMForceFieldAndMass.inl b/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/NonUniformHexahedronFEMForceFieldAndMass.inl index bbd77b34732..16bb1be8da9 100644 --- a/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/NonUniformHexahedronFEMForceFieldAndMass.inl +++ b/Sofa/Component/SolidMechanics/FEM/NonUniform/src/sofa/component/solidmechanics/fem/nonuniform/NonUniformHexahedronFEMForceFieldAndMass.inl @@ -67,7 +67,7 @@ void NonUniformHexahedronFEMForceFieldAndMass::init() if (this->d_initialPoints.getValue().size() == 0) { - const VecCoord& p = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p = this->mstate->read(core::vec_id::read_access::position)->getValue(); this->d_initialPoints.setValue(p); } diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/AngularSpringForceField.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/AngularSpringForceField.inl index 6b6879c0fd2..44250d1a445 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/AngularSpringForceField.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/AngularSpringForceField.inl @@ -213,7 +213,7 @@ void AngularSpringForceField::draw(const core::visual::VisualParams* const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); vparams->drawTool()->setLightingEnabled(false); - sofa::helper::ReadAccessor< DataVecCoord > p = this->mstate->read(core::VecCoordId::position()); + sofa::helper::ReadAccessor< DataVecCoord > p = this->mstate->read(core::vec_id::write_access::position); sofa::type::vector< type::Vec3 > vertices; for (sofa::Index i=0; i < d_indices.getValue().size(); i++) diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/FastTriangularBendingSprings.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/FastTriangularBendingSprings.inl index 5532d529d59..5ccd4f0d392 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/FastTriangularBendingSprings.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/FastTriangularBendingSprings.inl @@ -473,7 +473,7 @@ void FastTriangularBendingSprings::draw(const core::visual::VisualPar const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); vparams->drawTool()->disableLighting(); diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/FrameSpringForceField.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/FrameSpringForceField.inl index 0907c65f3fc..8b9e2678e75 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/FrameSpringForceField.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/FrameSpringForceField.inl @@ -183,8 +183,8 @@ template void FrameSpringForceField::draw(const core::visual::VisualParams* vparams) { if ( ! ( ( this->mstate1 == this->mstate2 ) ?vparams->displayFlags().getShowForceFields() :vparams->displayFlags().getShowInteractionForceFields() ) ) return; - const VecCoord& p1 =this->mstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& p2 =this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p1 =this->mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& p2 =this->mstate2->read(core::vec_id::read_access::position)->getValue(); const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); vparams->drawTool()->disableLighting(); diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/GearSpringForceField.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/GearSpringForceField.inl index d48737db38e..86d8bbced6c 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/GearSpringForceField.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/GearSpringForceField.inl @@ -120,8 +120,8 @@ void GearSpringForceField::init() template void GearSpringForceField::reinit() { - const VecCoord& x1=this->mstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& x2=this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x1=this->mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& x2=this->mstate2->read(core::vec_id::read_access::position)->getValue(); sofa::type::vector &springsVector=*(d_springs.beginEdit()); for (unsigned int i=0; i < d_springs.getValue().size(); ++i) { @@ -333,8 +333,8 @@ void GearSpringForceField::draw(const core::visual::VisualParams* vpa const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); - const VecCoord& p1 =this->mstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& p2 =this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p1 =this->mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& p2 =this->mstate2->read(core::vec_id::read_access::position)->getValue(); vparams->drawTool()->disableLighting(); constexpr const sofa::type::RGBAColor& color = sofa::type::RGBAColor::yellow(); diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/JointSpringForceField.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/JointSpringForceField.inl index 1b6992c2fd6..b3d745d79fc 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/JointSpringForceField.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/JointSpringForceField.inl @@ -103,9 +103,9 @@ template void JointSpringForceField::bwdInit() { - const VecCoord& x1= this->mstate1->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x1= this->mstate1->read(core::vec_id::read_access::position)->getValue(); - const VecCoord& x2= this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x2= this->mstate2->read(core::vec_id::read_access::position)->getValue(); type::vector &springsVector=*(d_springs.beginEdit()); for (sofa::Index i=0; i void JointSpringForceField::draw(const core::visual::VisualParams* vparams) { if (!((this->mstate1 == this->mstate2)?vparams->displayFlags().getShowForceFields():vparams->displayFlags().getShowInteractionForceFields())) return; - const VecCoord& p1 = this->mstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& p2 = this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p1 = this->mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& p2 = this->mstate2->read(core::vec_id::read_access::position)->getValue(); const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); vparams->drawTool()->setLightingEnabled(true); @@ -470,8 +470,8 @@ void JointSpringForceField::computeBBox(const core::ExecParams* para Real maxBBox[3] = { min_real,min_real,min_real }; Real minBBox[3] = { max_real,max_real,max_real }; - const VecCoord& p1 = this->mstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& p2 = this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p1 = this->mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& p2 = this->mstate2->read(core::vec_id::read_access::position)->getValue(); const type::vector& springs = d_springs.getValue(); @@ -515,8 +515,8 @@ void JointSpringForceField::addSpring(sofa::Index m1, sofa::Index m2, { Spring s(m1,m2,softKst,hardKst,softKsr,hardKsr, blocKsr, axmin, axmax, aymin, aymax, azmin, azmax, kd); - const VecCoord& x1= this->mstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& x2= this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x1= this->mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& x2= this->mstate2->read(core::vec_id::read_access::position)->getValue(); s.initTrans = x2[m2].getCenter() - x1[m1].getCenter(); s.initRot = x2[m2].getOrientation()*x1[m1].getOrientation().inverse(); diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/MeshSpringForceField.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/MeshSpringForceField.inl index b36565e01c9..fc872ab8089 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/MeshSpringForceField.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/MeshSpringForceField.inl @@ -88,7 +88,7 @@ void MeshSpringForceField::addSpring(std::set0) return; sset.insert(std::make_pair(m2,m1)); } - const Real l = ((mstate2->read(core::ConstVecCoordId::restPosition())->getValue())[m2] - (mstate1->read(core::ConstVecCoordId::restPosition())->getValue())[m1]).norm(); + const Real l = ((mstate2->read(core::vec_id::read_access::restPosition)->getValue())[m2] - (mstate1->read(core::vec_id::read_access::restPosition)->getValue())[m1]).norm(); if (l > std::numeric_limits::epsilon()) { sofa::helper::getWriteAccessor(d_springs)->emplace_back(m1, m2, stiffness / l, damping / l, l, d_noCompression.getValue()); @@ -223,8 +223,8 @@ void MeshSpringForceField::draw(const core::visual::VisualParams* vpa typedef typename Inherit1::Spring Spring; const sofa::type::vector &ss = d_springs.getValue(); - const VecCoord& p1 = mstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& p2 = mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p1 = mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& p2 = mstate2->read(core::vec_id::read_access::position)->getValue(); Real minElongation = std::numeric_limits::max(); Real maxElongation = 0.; diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/PolynomialRestShapeSpringsForceField.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/PolynomialRestShapeSpringsForceField.inl index 1cabdaea4b2..a4677d14f7d 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/PolynomialRestShapeSpringsForceField.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/PolynomialRestShapeSpringsForceField.inl @@ -210,14 +210,14 @@ const typename PolynomialRestShapeSpringsForceField::DataVecCoord* Po { if (d_restMState) { - return d_restMState->read(core::VecCoordId::position()); + return d_restMState->read(core::vec_id::write_access::position); } } else { if (this->mstate) { - return this->mstate->read(core::VecCoordId::restPosition()); + return this->mstate->read(core::vec_id::write_access::restPosition); } } return nullptr; @@ -412,7 +412,7 @@ void PolynomialRestShapeSpringsForceField::draw(const core::visual::V } helper::ReadAccessor< DataVecCoord > p0 = *extPosition; - helper::ReadAccessor< DataVecCoord > p = this->mstate->read(core::VecCoordId::position()); + helper::ReadAccessor< DataVecCoord > p = this->mstate->read(core::vec_id::write_access::position); const VecIndex& indices = m_indices; const VecIndex& ext_indices = (m_useRestMState ? m_ext_indices : m_indices); diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/PolynomialSpringsForceField.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/PolynomialSpringsForceField.inl index 0e4031c1dce..c7c49613af1 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/PolynomialSpringsForceField.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/PolynomialSpringsForceField.inl @@ -339,8 +339,8 @@ void PolynomialSpringsForceField::draw(const core::visual::VisualPara const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); - const VecCoord& p1 =this->mstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& p2 =this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p1 =this->mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& p2 =this->mstate2->read(core::vec_id::read_access::position)->getValue(); const VecIndex& firstObjectIndices = d_firstObjectPoints.getValue(); const VecIndex& secondObjectIndices = d_secondObjectPoints.getValue(); diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/QuadBendingSprings.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/QuadBendingSprings.inl index 58681013c2c..17496c167b8 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/QuadBendingSprings.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/QuadBendingSprings.inl @@ -58,7 +58,7 @@ void QuadBendingSprings::addSpring( unsigned a, unsigned b, std::set< const IndexPair ab(amstate1->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x =this->mstate1->read(core::vec_id::read_access::position)->getValue(); Real s = (Real)this->d_ks.getValue()[0]; Real d = (Real)this->d_kd.getValue()[0]; Real l = (x[a]-x[b]).norm(); diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/QuadularBendingSprings.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/QuadularBendingSprings.inl index 2f67a89af23..f15d473cb32 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/QuadularBendingSprings.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/QuadularBendingSprings.inl @@ -60,7 +60,7 @@ void QuadularBendingSprings::applyQuadCreation(const sofa::type::vect SReal m_ks=getKs(); SReal m_kd=getKd(); - const typename DataTypes::VecCoord& restPosition=this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const typename DataTypes::VecCoord& restPosition=this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); helper::WriteOnlyAccessor< Data< type::vector > > edgeData = edgeInfo; @@ -143,7 +143,7 @@ void QuadularBendingSprings::applyQuadDestruction(const sofa::type::v SReal m_ks=getKs(); SReal m_kd=getKd(); - const typename DataTypes::VecCoord& restPosition= this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const typename DataTypes::VecCoord& restPosition= this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); helper::WriteOnlyAccessor< Data< type::vector > > edgeData = edgeInfo; for (unsigned int i=0; i::draw(const core::visual::VisualParams* v if (vparams->displayFlags().getShowWireFrame()) vparams->drawTool()->setPolygonMode(0, true); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); vparams->drawTool()->disableLighting(); diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/RegularGridSpringForceField.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/RegularGridSpringForceField.inl index a38c03a8bde..c9e7d31d26e 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/RegularGridSpringForceField.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/RegularGridSpringForceField.inl @@ -445,8 +445,8 @@ void RegularGridSpringForceField::draw(const core::visual::VisualPara // Draw any custom springs this->SpringForceField::draw(vparams); // Compute topological springs - const VecCoord& p1 =this->mstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& p2 =this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p1 =this->mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& p2 =this->mstate2->read(core::vec_id::read_access::position)->getValue(); std::vector< Vec3 > points; Vec3 point1,point2; diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/RestShapeSpringsForceField.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/RestShapeSpringsForceField.inl index 557ee0b39d7..8f34f71e51d 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/RestShapeSpringsForceField.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/RestShapeSpringsForceField.inl @@ -316,14 +316,14 @@ const typename RestShapeSpringsForceField::DataVecCoord* RestShapeSpr { if (l_restMState) { - return l_restMState->read(VecCoordId::position()); + return l_restMState->read(core::vec_id::write_access::position); } } else { if (this->mstate) { - return this->mstate->read(VecCoordId::restPosition()); + return this->mstate->read(core::vec_id::write_access::restPosition); } } return nullptr; @@ -513,7 +513,7 @@ void RestShapeSpringsForceField::draw(const VisualParams *vparams) } ReadAccessor< DataVecCoord > p0 = *extPosition; - ReadAccessor< DataVecCoord > p = this->mstate->read(VecCoordId::position()); + ReadAccessor< DataVecCoord > p = this->mstate->read(sofa::core::vec_id::write_access::position); const VecIndex& indices = m_indices; const VecIndex& ext_indices = (useRestMState ? m_ext_indices : m_indices); diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/SpringForceField.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/SpringForceField.inl index 3d188ddb981..7f4b01a67cc 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/SpringForceField.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/SpringForceField.inl @@ -808,8 +808,8 @@ void SpringForceField::draw(const core::visual::VisualParams* vparams using namespace sofa::type; if (!((this->mstate1 == this->mstate2) ? vparams->displayFlags().getShowForceFields() : vparams->displayFlags().getShowInteractionForceFields())) return; - const VecCoord& p1 = this->mstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& p2 = this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p1 = this->mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& p2 = this->mstate2->read(core::vec_id::read_access::position)->getValue(); const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); @@ -915,8 +915,8 @@ void SpringForceField::computeBBox(const core::ExecParams* params, bo return; } - const VecCoord& p1 = this->mstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& p2 = this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p1 = this->mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& p2 = this->mstate2->read(core::vec_id::read_access::position)->getValue(); constexpr Real max_real = std::numeric_limits::max(); constexpr Real min_real = std::numeric_limits::lowest(); diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangleBendingSprings.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangleBendingSprings.inl index b934632f885..d14e449ee18 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangleBendingSprings.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangleBendingSprings.inl @@ -45,7 +45,7 @@ TriangleBendingSprings::~TriangleBendingSprings() template void TriangleBendingSprings::addSpring( unsigned a, unsigned b ) { - const VecCoord& x =this->mstate1->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x =this->mstate1->read(core::vec_id::read_access::position)->getValue(); Real s = (Real)this->d_ks.getValue()[0]; Real d = (Real)this->d_kd.getValue()[0]; Real l = (x[a]-x[b]).norm(); diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangularBendingSprings.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangularBendingSprings.inl index 914f36426fe..c1433fd080e 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangularBendingSprings.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangularBendingSprings.inl @@ -58,7 +58,7 @@ void TriangularBendingSprings::applyTriangleCreation(const sofa::type Real m_ks=getKs(); Real m_kd=getKd(); - const typename DataTypes::VecCoord& restPosition = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const typename DataTypes::VecCoord& restPosition = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); sofa::helper::WriteOnlyAccessor< core::objectmodel::Data< type::vector > > edgeData = d_edgeInfo; for (unsigned int i=0; i::applyTriangleDestruction(const sofa::t Real m_ks=getKs(); Real m_kd=getKd(); - const typename DataTypes::VecCoord& restPosition = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const typename DataTypes::VecCoord& restPosition = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); sofa::helper::WriteOnlyAccessor< core::objectmodel::Data< type::vector > > edgeData = d_edgeInfo; for (unsigned int i=0; i::draw(const core::visual::VisualParams* vparams->drawTool()->setPolygonMode(0, true); } - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); std::vector vertices; std::vector colors; diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangularBiquadraticSpringsForceField.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangularBiquadraticSpringsForceField.inl index ee84f3f88a5..13ae5ad30d9 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangularBiquadraticSpringsForceField.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangularBiquadraticSpringsForceField.inl @@ -47,7 +47,7 @@ void TriangularBiquadraticSpringsForceField::applyTriangleCreation(In typename DataTypes::Real area,restSquareLength[3],cotangent[3]; typename DataTypes::Real lambda=getLambda(); typename DataTypes::Real mu=getMu(); - const typename DataTypes::VecCoord restPosition=this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const typename DataTypes::VecCoord restPosition=this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); helper::WriteOnlyAccessor< Data< type::vector > > edgeInf = d_edgeInfo; ///describe the indices of the 3 triangle vertices @@ -115,7 +115,7 @@ void TriangularBiquadraticSpringsForceField::applyEdgeCreation(Index { // store the rest length of the edge created - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); const auto& e = this->m_topology->getEdge(edgeIndex); const auto& n0 = DataTypes::getCPos(x[e[0]]); @@ -195,7 +195,7 @@ template void TriangularBiquadraticSpringsForceFieldmstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& p = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); d_initialPoints.setValue(p); } unsigned int i; @@ -556,7 +556,7 @@ void TriangularBiquadraticSpringsForceField::draw(const core::visual: if (vparams->displayFlags().getShowWireFrame()) vparams->drawTool()->setPolygonMode(0, true); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); const size_t nbTriangles=m_topology->getNbTriangles(); std::vector vertices; diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangularQuadraticSpringsForceField.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangularQuadraticSpringsForceField.inl index b7451d9cd2d..1e2c3113357 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangularQuadraticSpringsForceField.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/TriangularQuadraticSpringsForceField.inl @@ -34,7 +34,7 @@ template< class DataTypes> void TriangularQuadraticSpringsForceField::applyEdgeCreation(Index edgeIndex, EdgeRestInformation &ei, const core::topology::Edge &, const sofa::type::vector &, const sofa::type::vector &) { // store the rest length of the edge created - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); const auto& e = this->m_topology->getEdge(edgeIndex); const auto& n0 = DataTypes::getCPos(x[e[0]]); @@ -178,7 +178,7 @@ template void TriangularQuadraticSpringsForceField: if (d_initialPoints.getValue().size() == 0) { // get restPosition - const VecCoord& p = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& p = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); d_initialPoints.setValue(p); } unsigned int i; @@ -303,7 +303,7 @@ void TriangularQuadraticSpringsForceField::addDForce(const core::Mech type::vector::EdgeRestInformation>& edgeInf = *(d_edgeInfo.beginEdit()); assert(this->mstate); - const VecDeriv& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecDeriv& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); Deriv deltax,res; @@ -435,7 +435,7 @@ void TriangularQuadraticSpringsForceField::draw(const core::visual::V if (vparams->displayFlags().getShowWireFrame()) vparams->drawTool()->setPolygonMode(0, true); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); const size_t nbTriangles=m_topology->getNbTriangles(); std::vector vertices; std::vector colors; diff --git a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/VectorSpringForceField.inl b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/VectorSpringForceField.inl index 83dced16b03..be2238b13e6 100644 --- a/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/VectorSpringForceField.inl +++ b/Sofa/Component/SolidMechanics/Spring/src/sofa/component/solidmechanics/spring/VectorSpringForceField.inl @@ -36,7 +36,7 @@ void VectorSpringForceField::createEdgeInformation(Index, Spring &t, const sofa::type::vector & ancestors, const sofa::type::vector & coefs) { - const typename DataTypes::VecCoord& x0 = this->getObject1()->read(core::ConstVecCoordId::restPosition())->getValue(); + const typename DataTypes::VecCoord& x0 = this->getObject1()->read(core::vec_id::read_access::restPosition)->getValue(); t.restVector = x0[e[1]] - x0[e[0]]; if (ancestors.size()>0) { @@ -232,7 +232,7 @@ void VectorSpringForceField::createDefaultSprings() type::vector& springArrayData = *(d_springArray.beginEdit()); springArrayData.resize(m_topology->getNbEdges()); - const VecCoord& x0 = this->mstate1->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x0 = this->mstate1->read(core::vec_id::read_access::restPosition)->getValue(); unsigned int i; for (i=0; igetNbEdges(); ++i) { @@ -368,9 +368,9 @@ void VectorSpringForceField::draw(const core::visual::VisualParams* v if (!((this->mstate1 == this->mstate2)?vparams->displayFlags().getShowForceFields():vparams->displayFlags().getShowInteractionForceFields())) return; - //const VecCoord& p = this->mstate->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& x1 =this->mstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& x2 =this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + //const VecCoord& p = this->mstate->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& x1 =this->mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& x2 =this->mstate2->read(core::vec_id::read_access::position)->getValue(); std::vector< Vec3 > points; diff --git a/Sofa/Component/SolidMechanics/Spring/tests/SpringForceField_test.cpp b/Sofa/Component/SolidMechanics/Spring/tests/SpringForceField_test.cpp index 9a557f49a77..797bafce838 100644 --- a/Sofa/Component/SolidMechanics/Spring/tests/SpringForceField_test.cpp +++ b/Sofa/Component/SolidMechanics/Spring/tests/SpringForceField_test.cpp @@ -179,7 +179,7 @@ struct SpringForceField_test : public ForceField_test<_SpringForceField> sofa::simulation::node::initRoot(this->node.get()); core::MechanicalParams mparams; mparams.setKFactor(1.0); - MechanicalComputeForceVisitor computeForce( &mparams, core::VecDerivId::force() ); + MechanicalComputeForceVisitor computeForce( &mparams, core::vec_id::write_access::force ); this->node->execute(computeForce); // check force diff --git a/Sofa/Component/SolidMechanics/TensorMass/src/sofa/component/solidmechanics/tensormass/TetrahedralTensorMassForceField.inl b/Sofa/Component/SolidMechanics/TensorMass/src/sofa/component/solidmechanics/tensormass/TetrahedralTensorMassForceField.inl index 114f51f905b..e3bec0e9b24 100644 --- a/Sofa/Component/SolidMechanics/TensorMass/src/sofa/component/solidmechanics/tensormass/TetrahedralTensorMassForceField.inl +++ b/Sofa/Component/SolidMechanics/TensorMass/src/sofa/component/solidmechanics/tensormass/TetrahedralTensorMassForceField.inl @@ -71,7 +71,7 @@ void TetrahedralTensorMassForceField::applyTetrahedronCreation(const typename DataTypes::Real lambdastar, mustar; typename DataTypes::Coord point[4],shapeVector[4]; - const auto& restPosition=this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const auto& restPosition=this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); edgeRestInfoVector& edgeData = *(d_edgeInfo.beginEdit()); const auto& tetraArray = m_topology->getTetrahedra(); @@ -153,7 +153,7 @@ void TetrahedralTensorMassForceField::applyTetrahedronDestruction(con typename DataTypes::Real lambdastar, mustar; typename DataTypes::Coord point[4],shapeVector[4]; - const typename DataTypes::VecCoord restPosition=this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const typename DataTypes::VecCoord restPosition=this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); edgeRestInfoVector& edgeData = *(d_edgeInfo.beginEdit()); @@ -287,7 +287,7 @@ TetrahedralTensorMassForceField::init() if (_initialPoints.size() == 0) { // get restPosition - const VecCoord& p = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& p = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); _initialPoints=p; } @@ -346,7 +346,7 @@ SReal TetrahedralTensorMassForceField::getPotentialEnergy(const core { SCOPED_TIMER("getPotentialEnergy"); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); SReal energy=0; @@ -507,7 +507,7 @@ void TetrahedralTensorMassForceField::draw(const core::visual::Visual constexpr sofa::type::RGBAColor color = sofa::type::RGBAColor::green(); std::vector vertices; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); const int nbTriangles=m_topology->getNbTriangles(); for(int i=0;i::applyTriangleCreation(const sofa typename DataTypes::Coord point[3],dpk,dpl; helper::WriteOnlyAccessor< Data< type::vector > > edgeData = d_edgeInfo; - const typename DataTypes::VecCoord& restPosition= this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const typename DataTypes::VecCoord& restPosition= this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); for (i=0; i::applyTriangleDestruction(const s typename DataTypes::Coord point[3],dpk,dpl; helper::WriteOnlyAccessor< Data< type::vector > > edgeData = d_edgeInfo; - const typename DataTypes::VecCoord& restPosition= this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const typename DataTypes::VecCoord& restPosition= this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); for (i=0; i void TriangularTensorMassForceField::init( if (_initialPoints.size() == 0) { // get restPosition - const VecCoord& p = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& p = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); _initialPoints=p; } @@ -414,7 +414,7 @@ void TriangularTensorMassForceField::draw(const core::visual::VisualP if (vparams->displayFlags().getShowWireFrame()) vparams->drawTool()->setPolygonMode(0, true); - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); const size_t nbTriangles=m_topology->getNbTriangles(); std::vector vertices; diff --git a/Sofa/Component/SolidMechanics/Testing/src/sofa/component/solidmechanics/testing/ForceFieldTestCreation.h b/Sofa/Component/SolidMechanics/Testing/src/sofa/component/solidmechanics/testing/ForceFieldTestCreation.h index afd471b510b..62211304cef 100644 --- a/Sofa/Component/SolidMechanics/Testing/src/sofa/component/solidmechanics/testing/ForceFieldTestCreation.h +++ b/Sofa/Component/SolidMechanics/Testing/src/sofa/component/solidmechanics/testing/ForceFieldTestCreation.h @@ -182,9 +182,9 @@ struct ForceField_test : public BaseSimulationTest, NumericTestexecute(resetForce); - MechanicalComputeForceVisitor computeForce( &mparams, core::VecDerivId::force() ); + MechanicalComputeForceVisitor computeForce( &mparams, core::vec_id::write_access::force ); this->node->execute(computeForce); // check force @@ -253,10 +253,10 @@ struct ForceField_test : public BaseSimulationTest, NumericTestexecute(resetForce); - dof->vRealloc( &mparams, core::VecDerivId::dx()); // dx is not allocated by default + dof->vRealloc( &mparams, core::vec_id::write_access::dx); // dx is not allocated by default typename DOF::WriteVecDeriv wdx = dof->writeDx(); sofa::testing::copyToData ( wdx, dX ); - MechanicalComputeDfVisitor computeDf( &mparams, core::VecDerivId::force() ); + MechanicalComputeDfVisitor computeDf( &mparams, core::vec_id::write_access::force ); node->execute(computeDf); VecDeriv dF; sofa::testing::copyFromData( dF, dof->readForces() ); diff --git a/Sofa/Component/SolidMechanics/simutests/AffinePatch_test.cpp b/Sofa/Component/SolidMechanics/simutests/AffinePatch_test.cpp index fb4a9ad7286..270088dbaca 100644 --- a/Sofa/Component/SolidMechanics/simutests/AffinePatch_test.cpp +++ b/Sofa/Component/SolidMechanics/simutests/AffinePatch_test.cpp @@ -208,7 +208,7 @@ struct AffinePatch_sofa_test : public sofa::testing::BaseSimulationTest, sofa::t // Compute the theoretical final positions VecCoord finalPos; - patchStruct.affineConstraint->getFinalPositions( finalPos,*patchStruct.dofs->write(core::VecCoordId::position()) ); + patchStruct.affineConstraint->getFinalPositions( finalPos,*patchStruct.dofs->write(core::vec_id::write_access::position) ); // Initialize diff --git a/Sofa/Component/SolidMechanics/simutests/LinearElasticity_test.cpp b/Sofa/Component/SolidMechanics/simutests/LinearElasticity_test.cpp index cfe9e1d3e23..6202204e7e1 100644 --- a/Sofa/Component/SolidMechanics/simutests/LinearElasticity_test.cpp +++ b/Sofa/Component/SolidMechanics/simutests/LinearElasticity_test.cpp @@ -248,13 +248,13 @@ struct LinearElasticity_test : public sofa::testing::BaseSimulationTest, sofa::t sofa::simulation::node::reset(tractionStruct.root.get()); // record the initial point of a given vertex - Coord p0=tractionStruct.dofs.get()->read(sofa::core::ConstVecCoordId::position())->getValue()[vIndex]; + Coord p0=tractionStruct.dofs.get()->read(sofa::core::vec_id::read_access::position)->getValue()[vIndex]; // do one step of the static solver sofa::simulation::node::animate(tractionStruct.root.get(), 0.5_sreal); // Get the simulated final position of that vertex - Coord p1=tractionStruct.dofs.get()->read(sofa::core::ConstVecCoordId::position())->getValue()[vIndex]; + Coord p1=tractionStruct.dofs.get()->read(sofa::core::vec_id::read_access::position)->getValue()[vIndex]; // test the young modulus Real longitudinalDeformation=(p1[2]-p0[2])/p0[2]; if (fabs(longitudinalDeformation-pressure/youngModulus)>1e-4) { diff --git a/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MappedObject.h b/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MappedObject.h index 6993dbf0f23..1d96f21d115 100644 --- a/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MappedObject.h +++ b/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MappedObject.h @@ -88,7 +88,7 @@ class MappedObject : public core::State Data< VecCoord >* write(core::VecCoordId v) override { - if(v == core::VecCoordId::position()) + if(v == core::vec_id::write_access::position) return &d_X; return nullptr; @@ -96,7 +96,7 @@ class MappedObject : public core::State const Data< VecCoord >* read(core::ConstVecCoordId v) const override { - if(v == core::ConstVecCoordId::position()) + if(v == core::vec_id::read_access::position) return &d_X; else return nullptr; @@ -104,7 +104,7 @@ class MappedObject : public core::State Data< VecDeriv >* write(core::VecDerivId v) override { - if(v == core::VecDerivId::velocity()) + if(v == core::vec_id::write_access::velocity) return &d_V; else return nullptr; @@ -112,7 +112,7 @@ class MappedObject : public core::State const Data< VecDeriv >* read(core::ConstVecDerivId v) const override { - if(v == core::ConstVecDerivId::velocity()) + if(v == core::vec_id::read_access::velocity) return &d_V; else return nullptr; diff --git a/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MechanicalObject.cpp b/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MechanicalObject.cpp index 8de57022975..d877d9f975b 100644 --- a/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MechanicalObject.cpp +++ b/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MechanicalObject.cpp @@ -55,7 +55,7 @@ void registerMechanicalObject(sofa::core::ObjectFactory* factory) template<> void MechanicalObject::applyRotation (const type::Quat q) { - helper::WriteAccessor< Data > x = *this->write(core::VecCoordId::position()); + helper::WriteAccessor< Data > x = *this->write(core::vec_id::write_access::position); for (RigidCoord<3, SReal>& xi : x) { @@ -199,7 +199,7 @@ void MechanicalObject::draw(const core::visual::Visual if (showObject.getValue()) { const float scale = showObjectScale.getValue(); - const helper::ReadAccessor > x = *this->read(core::VecCoordId::position()); + const helper::ReadAccessor > x = *this->read(core::vec_id::write_access::position); const size_t vsize = d_size.getValue(); for (size_t i = 0; i < vsize; ++i) { diff --git a/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MechanicalObject.h b/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MechanicalObject.h index e1327eaee63..3c90f0dd40b 100644 --- a/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MechanicalObject.h +++ b/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MechanicalObject.h @@ -150,13 +150,13 @@ class MechanicalObject : public sofa::core::behavior::MechanicalState Size getSize() const override { return d_size.getValue(); } - SReal getPX(sofa::Index i) const override { Real x=0.0,y=0.0,z=0.0; DataTypes::get(x,y,z,(read(core::ConstVecCoordId::position())->getValue())[i]); return (SReal)x; } - SReal getPY(sofa::Index i) const override { Real x=0.0,y=0.0,z=0.0; DataTypes::get(x,y,z,(read(core::ConstVecCoordId::position())->getValue())[i]); return (SReal)y; } - SReal getPZ(sofa::Index i) const override { Real x=0.0,y=0.0,z=0.0; DataTypes::get(x,y,z,(read(core::ConstVecCoordId::position())->getValue())[i]); return (SReal)z; } + SReal getPX(sofa::Index i) const override { Real x=0.0,y=0.0,z=0.0; DataTypes::get(x,y,z,(read(core::vec_id::read_access::position)->getValue())[i]); return (SReal)x; } + SReal getPY(sofa::Index i) const override { Real x=0.0,y=0.0,z=0.0; DataTypes::get(x,y,z,(read(core::vec_id::read_access::position)->getValue())[i]); return (SReal)y; } + SReal getPZ(sofa::Index i) const override { Real x=0.0,y=0.0,z=0.0; DataTypes::get(x,y,z,(read(core::vec_id::read_access::position)->getValue())[i]); return (SReal)z; } - SReal getVX(sofa::Index i) const { Real x=0.0,y=0.0,z=0.0; DataTypes::get(x,y,z, read(core::ConstVecDerivId::velocity())->getValue()[i]); return (SReal)x; } - SReal getVY(sofa::Index i) const { Real x=0.0,y=0.0,z=0.0; DataTypes::get(x,y,z, read(core::ConstVecDerivId::velocity())->getValue()[i]); return (SReal)y; } - SReal getVZ(sofa::Index i) const { Real x=0.0,y=0.0,z=0.0; DataTypes::get(x,y,z, read(core::ConstVecDerivId::velocity())->getValue()[i]); return (SReal)z; } + SReal getVX(sofa::Index i) const { Real x=0.0,y=0.0,z=0.0; DataTypes::get(x,y,z, read(core::vec_id::read_access::velocity)->getValue()[i]); return (SReal)x; } + SReal getVY(sofa::Index i) const { Real x=0.0,y=0.0,z=0.0; DataTypes::get(x,y,z, read(core::vec_id::read_access::velocity)->getValue()[i]); return (SReal)y; } + SReal getVZ(sofa::Index i) const { Real x=0.0,y=0.0,z=0.0; DataTypes::get(x,y,z, read(core::vec_id::read_access::velocity)->getValue()[i]); return (SReal)z; } /** \brief Overwrite values at index outputIndex by the ones at inputIndex. @@ -263,7 +263,7 @@ class MechanicalObject : public sofa::core::behavior::MechanicalState void endIntegration(const core::ExecParams* params, SReal dt) override; - void accumulateForce(const core::ExecParams* params, core::VecDerivId f = core::VecDerivId::force()) override; // see BaseMechanicalState::accumulateForce(const ExecParams*, VecId) override + void accumulateForce(const core::ExecParams* params, core::VecDerivId f = core::vec_id::write_access::force) override; // see BaseMechanicalState::accumulateForce(const ExecParams*, VecId) override /// Increment the index of the given VecCoordId, so that all 'allocated' vectors in this state have a lower index void vAvail(const core::ExecParams* params, core::VecCoordId& v) override; @@ -315,9 +315,9 @@ class MechanicalObject : public sofa::core::behavior::MechanicalState Size vSize( const core::ExecParams* params, core::ConstVecId v ) override; - void resetForce(const core::ExecParams* params, core::VecDerivId f = core::VecDerivId::force()) override; + void resetForce(const core::ExecParams* params, core::VecDerivId f = core::vec_id::write_access::force) override; - void resetAcc(const core::ExecParams* params, core::VecDerivId a = core::VecDerivId::dx()) override; + void resetAcc(const core::ExecParams* params, core::VecDerivId a = core::vec_id::write_access::dx) override; void resetConstraint(const core::ConstraintParams* cparams) override; diff --git a/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MechanicalObject.inl b/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MechanicalObject.inl index c31a21c7c1e..919a37297e2 100644 --- a/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MechanicalObject.inl +++ b/Sofa/Component/StateContainer/src/sofa/component/statecontainer/MechanicalObject.inl @@ -190,18 +190,18 @@ MechanicalObject::MechanicalObject() rotation2 .setGroup("Transformation"); scale .setGroup("Transformation"); - setVecCoord(core::VecCoordId::position(), &x); - setVecCoord(core::VecCoordId::freePosition(), &xfree); - setVecCoord(core::VecCoordId::restPosition(), &x0); - setVecCoord(core::VecCoordId::resetPosition(), &reset_position); - setVecDeriv(core::VecDerivId::velocity(), &v); - setVecDeriv(core::VecDerivId::force(), &f); - setVecDeriv(core::VecDerivId::externalForce(), &externalForces); - setVecDeriv(core::VecDerivId::dx(), &dx); - setVecDeriv(core::VecDerivId::freeVelocity(), &vfree); - setVecDeriv(core::VecDerivId::resetVelocity(), &reset_velocity); - setVecMatrixDeriv(core::MatrixDerivId::constraintJacobian(), &c); - setVecMatrixDeriv(core::MatrixDerivId::mappingJacobian(), &m); + setVecCoord(core::vec_id::write_access::position, &x); + setVecCoord(core::vec_id::write_access::freePosition, &xfree); + setVecCoord(core::vec_id::write_access::restPosition, &x0); + setVecCoord(core::vec_id::write_access::resetPosition, &reset_position); + setVecDeriv(core::vec_id::write_access::velocity, &v); + setVecDeriv(core::vec_id::write_access::force, &f); + setVecDeriv(core::vec_id::write_access::externalForce, &externalForces); + setVecDeriv(core::vec_id::write_access::dx, &dx); + setVecDeriv(core::vec_id::write_access::freeVelocity, &vfree); + setVecDeriv(core::vec_id::write_access::resetVelocity, &reset_velocity); + setVecMatrixDeriv(core::vec_id::write_access::constraintJacobian, &c); + setVecMatrixDeriv(core::vec_id::write_access::mappingJacobian, &m); // These vectors are set as modified as they are mandatory in the MechanicalObject. x .forceSet(); @@ -217,7 +217,7 @@ MechanicalObject::MechanicalObject() // freeVelocity.setDisplayed( false ); // do not forget to delete these in the destructor - // write(VecDerivId::dforce())->forceSet(); + // write(vec_id::write_access::dforce)->forceSet(); // What is exactly the need for allocating null vectors? // if sofa crashes because of a wrong access to the null vector @@ -248,8 +248,8 @@ MechanicalObject::~MechanicalObject() if( vectorsDeriv[i] != nullptr ) { delete vectorsDeriv[i]; vectorsDeriv[i]=nullptr; } if( vectorsDeriv[core::VecDerivId::null().getIndex()] != nullptr ) { delete vectorsDeriv[core::VecDerivId::null().getIndex()]; vectorsDeriv[core::VecDerivId::null().getIndex()] = nullptr; } - if( core::VecDerivId::dforce().getIndex()::exportGnuplot(SReal time) { if( m_gnuplotFileX!=nullptr ) { - (*m_gnuplotFileX) << time <<"\t"<< read(core::ConstVecCoordId::position())->getValue() << std::endl; + (*m_gnuplotFileX) << time <<"\t"<< read(core::vec_id::read_access::position)->getValue() << std::endl; } if( m_gnuplotFileV!=nullptr ) { - (*m_gnuplotFileV) << time <<"\t"<< read(core::ConstVecDerivId::velocity())->getValue() << std::endl; + (*m_gnuplotFileV) << time <<"\t"<< read(core::vec_id::read_access::velocity)->getValue() << std::endl; } } @@ -448,7 +448,7 @@ void MechanicalObject::handleStateChange() if (vecCoord.size() != 0) { - coordVecs.push_back(k); + coordVecs.emplace_back(k); } } } @@ -461,7 +461,7 @@ void MechanicalObject::handleStateChange() if (vecDeriv.size() != 0) { - derivVecs.push_back(k); + derivVecs.emplace_back(k); } } } @@ -673,7 +673,7 @@ void MechanicalObject::reserve(const Size size) template void MechanicalObject::applyTranslation (const SReal dx, const SReal dy, const SReal dz) { - helper::WriteAccessor< Data > x_wA = *this->write(core::VecCoordId::position()); + helper::WriteAccessor< Data > x_wA = *this->write(core::vec_id::write_access::position); for (unsigned int i = 0; i < x_wA.size(); i++) { @@ -693,7 +693,7 @@ void MechanicalObject::applyRotation (const SReal rx, const SReal ry, template void MechanicalObject::applyRotation (const type::Quat q) { - helper::WriteAccessor< Data > x_wA = *this->write(core::VecCoordId::position()); + helper::WriteAccessor< Data > x_wA = *this->write(core::vec_id::write_access::position); for (unsigned int i = 0; i < x_wA.size(); i++) { @@ -1024,13 +1024,13 @@ void MechanicalObject::init() } } - Data* x_wAData = this->write(sofa::core::VecCoordId::position()); - Data* v_wAData = this->write(sofa::core::VecDerivId::velocity()); + Data* x_wAData = this->write(sofa::core::vec_id::write_access::position); + Data* v_wAData = this->write(sofa::core::vec_id::write_access::velocity); VecCoord& x_wA = *x_wAData->beginEdit(); VecDeriv& v_wA = *v_wAData->beginEdit(); //case if X0 has been set but not X - if (read(core::ConstVecCoordId::restPosition())->getValue().size() > x_wA.size()) + if (read(core::vec_id::read_access::restPosition)->getValue().size() > x_wA.size()) { vOp(core::execparams::defaultInstance(), core::VecId::position(), core::VecId::restPosition()); } @@ -1093,7 +1093,7 @@ void MechanicalObject::init() reinit(); // storing X0 must be done after reinit() that possibly applies transformations - if( read(core::ConstVecCoordId::restPosition())->getValue().size()!=x_wA.size() ) + if( read(core::vec_id::read_access::restPosition)->getValue().size()!=x_wA.size() ) { // storing X0 from X if( restScale.getValue()!=1 ) @@ -1137,7 +1137,7 @@ void MechanicalObject::storeResetState() vOp(core::execparams::defaultInstance(), core::VecId::resetPosition(), core::VecId::position()); // we only store a resetVelocity if the velocity is not zero - helper::ReadAccessor< Data > v = *this->read(core::VecDerivId::velocity()); + helper::ReadAccessor< Data > v = *this->read(core::vec_id::write_access::velocity); bool zero = true; for (unsigned int i=0; i::accumulateForce(const core::ExecParams* params { SOFA_UNUSED(params); - helper::ReadAccessor< Data > extForces_rA( *this->read(core::ConstVecDerivId::externalForce()) ); + helper::ReadAccessor< Data > extForces_rA( *this->read(core::vec_id::read_access::externalForce) ); if (!extForces_rA.empty()) { @@ -2305,7 +2305,7 @@ void MechanicalObject::resetConstraint(const core::ConstraintParams* sofa::helper::getWriteOnlyAccessor(c_data)->clear(); //reset the mapping jacobian matrix - Data& m_data = *this->write(core::MatrixDerivId::mappingJacobian()); + Data& m_data = *this->write(core::vec_id::write_access::mappingJacobian); sofa::helper::getWriteOnlyAccessor(m_data)->clear(); } @@ -2488,7 +2488,7 @@ template inline void MechanicalObject::drawVectors(const core::visual::VisualParams* vparams) { float scale = showVectorsScale.getValue(); - sofa::helper::ReadAccessor< Data > v_rA = *this->read(core::ConstVecDerivId::velocity()); + sofa::helper::ReadAccessor< Data > v_rA = *this->read(core::vec_id::read_access::velocity); type::vector points; points.resize(2); for(Size i=0; i::pickParticles(const core::ExecParams* /* param // TODO: this verification is awful and should be done by template specialization { // seems to be valid DOFs - const VecCoord& x =this->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x =this->read(core::vec_id::read_access::position)->getValue(); type::Vec<3,Real> origin((Real)rayOx, (Real)rayOy, (Real)rayOz); type::Vec<3,Real> direction((Real)rayDx, (Real)rayDy, (Real)rayDz); @@ -2620,7 +2620,7 @@ bool MechanicalObject::addBBox(SReal* minBBox, SReal* maxBBox) static const unsigned spatial_dimensions = std::min( (unsigned)DataTypes::spatial_dimensions, 3u ); - const VecCoord& x = read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = read(core::vec_id::read_access::position)->getValue(); for(Size i=0; i p; diff --git a/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/EdgeSetGeometryAlgorithms.inl b/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/EdgeSetGeometryAlgorithms.inl index bce8156f4d9..73a4475a475 100644 --- a/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/EdgeSetGeometryAlgorithms.inl +++ b/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/EdgeSetGeometryAlgorithms.inl @@ -251,7 +251,7 @@ template< class DataTypes> typename DataTypes::Real EdgeSetGeometryAlgorithms< DataTypes >::computeEdgeLength( const EdgeID i) const { const Edge &e = this->m_topology->getEdge(i); - const VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); const Real length = (DataTypes::getCPos(p[e[0]])-DataTypes::getCPos(p[e[1]])).norm(); return length; } @@ -263,7 +263,7 @@ template< class DataTypes> typename DataTypes::Real EdgeSetGeometryAlgorithms< DataTypes >::computeRestEdgeLength( const EdgeID i) const { const Edge &e = this->m_topology->getEdge(i); - const VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); const Real length = (DataTypes::getCPos(p[e[0]])-DataTypes::getCPos(p[e[1]])).norm(); return length; } @@ -272,7 +272,7 @@ template< class DataTypes> typename DataTypes::Real EdgeSetGeometryAlgorithms< DataTypes >::computeRestSquareEdgeLength( const EdgeID i) const { const Edge &e = this->m_topology->getEdge(i); - const VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); const Real length = (DataTypes::getCPos(p[e[0]])-DataTypes::getCPos(p[e[1]])).norm2(); return length; } @@ -282,7 +282,7 @@ template void EdgeSetGeometryAlgorithms::computeEdgeLength( BasicArrayInterface &ai) const { const sofa::type::vector &ea = this->m_topology->getEdges(); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); for (Index i=0; i void EdgeSetGeometryAlgorithms::computeEdgeAABB(const EdgeID i, CPos& minCoord, CPos& maxCoord) const { const Edge &e = this->m_topology->getEdge(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); const CPos& a = DataTypes::getCPos(p[e[0]]); const CPos& b = DataTypes::getCPos(p[e[1]]); for (int c=0; c void EdgeSetGeometryAlgorithms::getEdgeVertexCoordinates(const EdgeID i, Coord pnt[2]) const { const Edge &e = this->m_topology->getEdge(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); pnt[0] = p[e[0]]; pnt[1] = p[e[1]]; @@ -317,7 +317,7 @@ template void EdgeSetGeometryAlgorithms::getRestEdgeVertexCoordinates(const EdgeID i, Coord pnt[2]) const { const Edge &e = this->m_topology->getEdge(i); - const typename DataTypes::VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const typename DataTypes::VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); pnt[0] = p[e[0]]; pnt[1] = p[e[1]]; @@ -327,7 +327,7 @@ template typename DataTypes::Coord EdgeSetGeometryAlgorithms::computeEdgeCenter(const EdgeID i) const { const Edge &e = this->m_topology->getEdge(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); return (p[e[0]] + p[e[1]]) * (Real) 0.5; } @@ -336,7 +336,7 @@ template typename DataTypes::Coord EdgeSetGeometryAlgorithms::computeEdgeDirection(const EdgeID i) const { const Edge &e = this->m_topology->getEdge(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); return (p[e[1]] - p[e[0]]); } @@ -344,7 +344,7 @@ template typename DataTypes::Coord EdgeSetGeometryAlgorithms::computeRestEdgeDirection(const EdgeID i) const { const Edge &e = this->m_topology->getEdge(i); - const typename DataTypes::VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const typename DataTypes::VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); return (p[e[1]] - p[e[0]]); } @@ -368,7 +368,7 @@ auto EdgeSetGeometryAlgorithms::computeEdgeBarycentricCoordinates( const sofa::type::Vec<3, Real> &p, PointID ind_p1, PointID ind_p2, bool useRestPosition) const -> sofa::type::vector< SReal > { - sofa::core::ConstVecCoordId::MyVecId _vecId = useRestPosition ? core::ConstVecCoordId::restPosition() : core::ConstVecCoordId::position(); + sofa::core::ConstVecCoordId::MyVecId _vecId = useRestPosition ? core::vec_id::read_access::restPosition : core::vec_id::read_access::position; const typename DataTypes::VecCoord& vect_c = (this->object->read(_vecId)->getValue()); const typename DataTypes::Coord& c0 = vect_c[ind_p1]; @@ -440,7 +440,7 @@ template bool EdgeSetGeometryAlgorithms::computeEdgePlaneIntersection (EdgeID edgeID, sofa::type::Vec<3,Real> pointOnPlane, sofa::type::Vec<3,Real> normalOfPlane, sofa::type::Vec<3,Real>& intersection) { const Edge &e = this->m_topology->getEdge(edgeID); - const VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); sofa::type::Vec<3,Real> p1,p2; p1[0]=p[e[0]][0]; p1[1]=p[e[0]][1]; p1[2]=p[e[0]][2]; @@ -465,7 +465,7 @@ template bool EdgeSetGeometryAlgorithms::computeRestEdgePlaneIntersection (EdgeID edgeID, sofa::type::Vec<3,Real> pointOnPlane, sofa::type::Vec<3,Real> normalOfPlane, sofa::type::Vec<3,Real>& intersection) { const Edge &e = this->m_topology->getEdge(edgeID); - const VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); sofa::type::Vec<3,Real> p1,p2; p1[0]=p[e[0]][0]; p1[1]=p[e[0]][1]; p1[2]=p[e[0]][2]; @@ -509,7 +509,7 @@ template typename DataTypes::Coord EdgeSetGeometryAlgorithms::computeEdgeSegmentIntersection(const EdgeID edgeID, const type::Vec3& a, const type::Vec3& b, bool& intersected) { const Edge& theEdge = this->m_topology->getEdge(edgeID); - const VecCoord& pos = (this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& pos = (this->object->read(core::vec_id::read_access::position)->getValue()); const typename DataTypes::Coord& e0 = pos[theEdge[0]]; const typename DataTypes::Coord& e1 = pos[theEdge[1]]; @@ -537,7 +537,7 @@ void EdgeSetGeometryAlgorithms::draw(const core::visual::VisualParams // Draw Edges indices if (showEdgeIndices.getValue() && this->m_topology->getNbEdges() != 0) { - const VecCoord& coords =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& coords =(this->object->read(core::vec_id::read_access::position)->getValue()); float scale = this->getIndicesScale(); //for edges: @@ -566,7 +566,7 @@ void EdgeSetGeometryAlgorithms::draw(const core::visual::VisualParams { const sofa::type::vector &edgeArray = this->m_topology->getEdges(); - const VecCoord& coords =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& coords =(this->object->read(core::vec_id::read_access::position)->getValue()); std::vector positions; positions.reserve(edgeArray.size()*2u); @@ -588,7 +588,7 @@ void EdgeSetGeometryAlgorithms::draw(const core::visual::VisualParams template< class DataTypes> void EdgeSetGeometryAlgorithms< DataTypes >::computeLocalFrameEdgeWeights( type::vector& numEdges, type::vector& vertexEdges, type::vector& weights ) const { - const VecCoord& pos =(this->object->read(core::ConstVecCoordId::position())->getValue()); // point positions + const VecCoord& pos =(this->object->read(core::vec_id::read_access::position)->getValue()); // point positions sofa::type::vector > edgeVec; // 3D edges @@ -739,7 +739,7 @@ bool EdgeSetGeometryAlgorithms::computeEdgeSegmentIntersection(EdgeID Real &baryCoef) { const Edge& theEdge = this->m_topology->getEdge(edgeID); - const VecCoord& pos = (this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& pos = (this->object->read(core::vec_id::read_access::position)->getValue()); const typename DataTypes::Coord& e0 = pos[theEdge[0]]; const typename DataTypes::Coord& e1 = pos[theEdge[1]]; diff --git a/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/HexahedronSetGeometryAlgorithms.inl b/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/HexahedronSetGeometryAlgorithms.inl index 4213579e525..1c0a280aa4c 100644 --- a/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/HexahedronSetGeometryAlgorithms.inl +++ b/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/HexahedronSetGeometryAlgorithms.inl @@ -378,7 +378,7 @@ template< class DataTypes> void HexahedronSetGeometryAlgorithms< DataTypes >::computeHexahedronAABB(const HexaID h, Coord& minCoord, Coord& maxCoord) const { const Hexahedron &t = this->m_topology->getHexahedron(h); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); for(unsigned int i=0; i<3; ++i) { @@ -394,7 +394,7 @@ template< class DataTypes> void HexahedronSetGeometryAlgorithms< DataTypes >::computeHexahedronRestAABB(const HexaID h, Coord& minCoord, Coord& maxCoord) const { const Hexahedron &t = this->m_topology->getHexahedron(h); - const typename DataTypes::VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const typename DataTypes::VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); for(unsigned int i=0; i<3; ++i) { @@ -410,7 +410,7 @@ template typename DataTypes::Coord HexahedronSetGeometryAlgorithms::computeHexahedronCenter(const HexaID h) const { const Hexahedron &t = this->m_topology->getHexahedron(h); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); return (p[t[0]] + p[t[1]] + p[t[2]] + p[t[3]] + p[t[4]] + p[t[5]] + p[t[6]] + p[t[7]]) * (Real) 0.125; } @@ -419,7 +419,7 @@ template typename DataTypes::Coord HexahedronSetGeometryAlgorithms::computeHexahedronRestCenter(const HexaID h) const { const Hexahedron &t = this->m_topology->getHexahedron(h); - const typename DataTypes::VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const typename DataTypes::VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); return (p[t[0]] + p[t[1]] + p[t[2]] + p[t[3]] + p[t[4]] + p[t[5]] + p[t[6]] + p[t[7]]) * (Real) 0.125; } @@ -428,7 +428,7 @@ template< class DataTypes> void HexahedronSetGeometryAlgorithms< DataTypes >::getHexahedronVertexCoordinates(const HexaID h, Coord pnt[8]) const { const Hexahedron &t = this->m_topology->getHexahedron(h); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); for(unsigned int i=0; i<8; ++i) { @@ -440,7 +440,7 @@ template< class DataTypes> void HexahedronSetGeometryAlgorithms< DataTypes >::getRestHexahedronVertexCoordinates(const HexaID h, Coord pnt[8]) const { const Hexahedron &t = this->m_topology->getHexahedron(h); - const typename DataTypes::VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const typename DataTypes::VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); for(unsigned int i=0; i<8; ++i) { @@ -707,7 +707,7 @@ template< class DataTypes> typename DataTypes::Real HexahedronSetGeometryAlgorithms< DataTypes >::computeHexahedronVolume( const HexaID hexa) const { const Hexahedron &h = this->m_topology->getHexahedron(hexa); - const VecCoord& p = (this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& p = (this->object->read(core::vec_id::read_access::position)->getValue()); Coord dp[3]; unsigned char i,j,k,ind[3]; Real volume; @@ -740,7 +740,7 @@ template< class DataTypes> typename DataTypes::Real HexahedronSetGeometryAlgorithms< DataTypes >::computeRestHexahedronVolume( const HexaID hexa) const { const Hexahedron &h = this->m_topology->getHexahedron(hexa); - const VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); Coord dp[3]; size_t i,j,k,ind[3]; Real volume; @@ -773,7 +773,7 @@ template void HexahedronSetGeometryAlgorithms::computeHexahedronVolume( BasicArrayInterface &ai) const { //const sofa::type::vector &ta=this->m_topology->getHexahedra(); - //const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + //const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); for(sofa::Index i=0; im_topology->getNbHexahedra(); ++i) { //const Hexahedron &t=this->m_topology->getHexahedron(i); //ta[i]; @@ -793,7 +793,7 @@ void HexahedronSetGeometryAlgorithms::draw(const core::visual::Visual // Draw Hexa indices if (d_showHexaIndices.getValue() && this->m_topology->getNbHexahedra() != 0) { - const VecCoord& coords =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& coords =(this->object->read(core::vec_id::read_access::position)->getValue()); float scale = this->getIndicesScale(); //for hexa: @@ -830,7 +830,7 @@ void HexahedronSetGeometryAlgorithms::draw(const core::visual::Visual const sofa::type::vector &hexaArray = this->m_topology->getHexahedra(); - const VecCoord& coords =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& coords =(this->object->read(core::vec_id::read_access::position)->getValue()); sofa::type::vector hexaCoords; for (size_t i = 0; i::getPointSetCent { typename DataTypes::Coord center; // get current positions - const typename DataTypes::VecCoord& p =(object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(object->read(core::vec_id::read_access::position)->getValue()); const int numVertices = this->m_topology->getNbPoints(); for(int i=0; i::getEnclosingSphere(typename DataTyp typename DataTypes::Real &radius) const { // get current positions - const typename DataTypes::VecCoord& p =(object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(object->read(core::vec_id::read_access::position)->getValue()); const unsigned int numVertices = this->m_topology->getNbPoints(); for(unsigned int i=0; i void PointSetGeometryAlgorithms::getAABB(CPos& minCoord, CPos& maxCoord) const { // get current positions - const VecCoord& p =(object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& p =(object->read(core::vec_id::read_access::position)->getValue()); minCoord = DataTypes::getCPos(p[0]); maxCoord = minCoord; @@ -172,7 +172,7 @@ template const typename DataTypes::Coord& PointSetGeometryAlgorithms::getPointPosition(const PointID pointId) const { // get current positions - const typename DataTypes::VecCoord& p =(object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(object->read(core::vec_id::read_access::position)->getValue()); return p[pointId]; } @@ -181,7 +181,7 @@ template const typename DataTypes::Coord& PointSetGeometryAlgorithms::getPointRestPosition(const PointID pointId) const { // get rest positions - const typename DataTypes::VecCoord& p = (object->read(core::ConstVecCoordId::restPosition())->getValue()); + const typename DataTypes::VecCoord& p = (object->read(core::vec_id::read_access::restPosition)->getValue()); return p[pointId]; } @@ -191,7 +191,7 @@ typename PointSetGeometryAlgorithms::Angle PointSetGeometryAlgorithms::computeAngle(PointID ind_p0, PointID ind_p1, PointID ind_p2) const { const double ZERO = 1e-10; - const typename DataTypes::VecCoord& p =(object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(object->read(core::vec_id::read_access::position)->getValue()); Coord p0 = p[ind_p0]; Coord p1 = p[ind_p1]; Coord p2 = p[ind_p2]; @@ -276,7 +276,7 @@ void PointSetGeometryAlgorithms::draw(const core::visual::VisualParam if (d_showPointIndices.getValue()) { - const VecCoord& coords =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& coords =(this->object->read(core::vec_id::read_access::position)->getValue()); constexpr auto color4 = sofa::type::RGBAColor::white(); const float scale = getIndicesScale(); diff --git a/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/QuadSetGeometryAlgorithms.inl b/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/QuadSetGeometryAlgorithms.inl index 4c47a01e23a..373f9d6d6f7 100644 --- a/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/QuadSetGeometryAlgorithms.inl +++ b/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/QuadSetGeometryAlgorithms.inl @@ -32,7 +32,7 @@ template< class DataTypes> void QuadSetGeometryAlgorithms< DataTypes >::computeQuadAABB(const QuadID i, Coord& minCoord, Coord& maxCoord) const { const Quad &t = this->m_topology->getQuad(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); for(unsigned int i=0; i<3; ++i) { @@ -45,7 +45,7 @@ template typename DataTypes::Coord QuadSetGeometryAlgorithms::computeQuadCenter(const QuadID i) const { const Quad &t = this->m_topology->getQuad(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); return (p[t[0]] + p[t[1]] + p[t[2]] + p[t[3]]) * (Real) 0.25; } @@ -54,7 +54,7 @@ template< class DataTypes> void QuadSetGeometryAlgorithms< DataTypes >::getQuadVertexCoordinates(const QuadID i, Coord pnt[4]) const { const Quad &t = this->m_topology->getQuad(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); for(unsigned int i=0; i<4; ++i) { @@ -66,7 +66,7 @@ template< class DataTypes> void QuadSetGeometryAlgorithms< DataTypes >::getRestQuadVertexCoordinates(const QuadID i, Coord pnt[4]) const { const Quad &t = this->m_topology->getQuad(i); - const typename DataTypes::VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const typename DataTypes::VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); for(unsigned int i=0; i<4; ++i) { @@ -78,7 +78,7 @@ template< class DataTypes> typename DataTypes::Real QuadSetGeometryAlgorithms< DataTypes >::computeQuadArea( const QuadID i) const { const Quad &t = this->m_topology->getQuad(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); Real area = (Real)((areaProduct(p[t[1]]-p[t[0]],p[t[2]]-p[t[0]]) + areaProduct(p[t[3]]-p[t[2]],p[t[0]]-p[t[2]])) * (Real) 0.5); return area; @@ -88,7 +88,7 @@ template< class DataTypes> typename DataTypes::Real QuadSetGeometryAlgorithms< DataTypes >::computeRestQuadArea( const QuadID i) const { const Quad &t = this->m_topology->getQuad(i); - const typename DataTypes::VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const typename DataTypes::VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); Real area = (Real)((areaProduct(p[t[1]]-p[t[0]],p[t[2]]-p[t[0]]) + areaProduct(p[t[3]]-p[t[2]],p[t[0]]-p[t[2]])) * (Real) 0.5); return area; @@ -99,7 +99,7 @@ void QuadSetGeometryAlgorithms::computeQuadArea( BasicArrayInterface< { //const sofa::type::vector &ta=this->m_topology->getQuads(); const size_t nb_quads = this->m_topology->getNbQuads(); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); for(sofa::Index i=0; i QuadSetGeometryAlgorithms< DataTypes >::computeQuadNor // HYP : The quad indexed by ind_q is planar const Quad &q = this->m_topology->getQuad(ind_q); - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); const typename DataTypes::Coord& c0=vect_c[q[0]]; const typename DataTypes::Coord& c1=vect_c[q[1]]; @@ -149,7 +149,7 @@ bool QuadSetGeometryAlgorithms< DataTypes >::isQuadInPlane(const QuadID ind_q, // HYP : ind_p==q[0] or ind_q==t[1] or ind_q==t[2] or ind_q==q[3] - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); PointID ind_1; PointID ind_2; @@ -203,7 +203,7 @@ bool QuadSetGeometryAlgorithms< DataTypes >::isPointInQuad(const QuadID ind_q, c { const double ZERO = 1e-6; const Quad &q = this->m_topology->getQuad(ind_q); - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); sofa::type::Vec<3,Real> ptest = p; sofa::type::Vec<3,Real> p0(vect_c[q[0]][0], vect_c[q[0]][1], vect_c[q[0]][2]); @@ -315,7 +315,7 @@ void QuadSetGeometryAlgorithms::draw(const core::visual::VisualParams // Draw Quads indices if (showQuadIndices.getValue() && this->m_topology->getNbQuads() != 0) { - const VecCoord& coords =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& coords =(this->object->read(core::vec_id::read_access::position)->getValue()); sofa::type::RGBAColor color = _drawColor.getValue(); color[0] -= 0.2f; color[1] -= 0.2f; @@ -355,7 +355,7 @@ void QuadSetGeometryAlgorithms::draw(const core::visual::VisualParams const sofa::type::vector& quadArray = this->m_topology->getQuads(); // Draw Quad surfaces - const VecCoord& coords =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& coords =(this->object->read(core::vec_id::read_access::position)->getValue()); { // drawing quads std::vector pos; pos.reserve(quadArray.size()*4u); diff --git a/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/TetrahedronSetGeometryAlgorithms.inl b/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/TetrahedronSetGeometryAlgorithms.inl index 95c11dd76af..6b15e47aeac 100644 --- a/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/TetrahedronSetGeometryAlgorithms.inl +++ b/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/TetrahedronSetGeometryAlgorithms.inl @@ -399,7 +399,7 @@ template< class DataTypes> void TetrahedronSetGeometryAlgorithms< DataTypes >::computeTetrahedronAABB(const TetraID i, Coord& minCoord, Coord& maxCoord) const { const Tetrahedron t = this->m_topology->getTetrahedron(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); for(unsigned int i=0; i<3; ++i) { @@ -412,7 +412,7 @@ template typename DataTypes::Coord TetrahedronSetGeometryAlgorithms::computeTetrahedronCenter(const TetraID i) const { const Tetrahedron t = this->m_topology->getTetrahedron(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); return (p[t[0]] + p[t[1]] + p[t[2]] + p[t[3]]) * (Real) 0.25; } @@ -421,7 +421,7 @@ template typename DataTypes::Coord TetrahedronSetGeometryAlgorithms::computeTetrahedronCircumcenter(const TetraID i) const { const Tetrahedron t = this->m_topology->getTetrahedron(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); Coord center = p[t[0]]; Coord t1 = p[t[1]] - p[t[0]]; @@ -449,7 +449,7 @@ bool TetrahedronSetGeometryAlgorithms< DataTypes >::isPointInTetrahedron(const T const Real ZERO = 1e-15; const Tetrahedron t = this->m_topology->getTetrahedron(ind_t); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); const sofa::type::Vec<3,Real> t0(p[t[0]][0], p[t[0]][1], p[t[0]][2]); const sofa::type::Vec<3,Real> t1(p[t[1]][0], p[t[1]][1], p[t[1]][2]); @@ -475,7 +475,7 @@ bool TetrahedronSetGeometryAlgorithms< DataTypes >::isPointInTetrahedron(const T const Real ZERO = 1e-15; const Tetrahedron t = this->m_topology->getTetrahedron(ind_t); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); const sofa::type::Vec<3,Real> t0(p[t[0]][0], p[t[0]][1], p[t[0]][2]); const sofa::type::Vec<3,Real> t1(p[t[1]][0], p[t[1]][1], p[t[1]][2]); @@ -511,7 +511,7 @@ template< class DataTypes> void TetrahedronSetGeometryAlgorithms< DataTypes >::getTetrahedronVertexCoordinates(const TetraID i, Coord pnt[4]) const { const Tetrahedron t = this->m_topology->getTetrahedron(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); for(unsigned int i=0; i<4; ++i) { @@ -523,7 +523,7 @@ template< class DataTypes> void TetrahedronSetGeometryAlgorithms< DataTypes >::getRestTetrahedronVertexCoordinates(const TetraID i, Coord pnt[4]) const { const Tetrahedron t = this->m_topology->getTetrahedron(i); - const typename DataTypes::VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const typename DataTypes::VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); for(unsigned int i=0; i<4; ++i) { @@ -535,7 +535,7 @@ template< class DataTypes> typename DataTypes::Real TetrahedronSetGeometryAlgorithms< DataTypes >::computeTetrahedronVolume( const TetraID i) const { const Tetrahedron t = this->m_topology->getTetrahedron(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); Real volume = (Real)(tripleProduct(p[t[1]]-p[t[0]],p[t[2]]-p[t[0]],p[t[3]]-p[t[0]])/6.0); if(volume<0) volume=-volume; @@ -551,7 +551,7 @@ typename DataTypes::Real TetrahedronSetGeometryAlgorithms< DataTypes >::computeR template< class DataTypes> typename DataTypes::Real TetrahedronSetGeometryAlgorithms< DataTypes >::computeRestTetrahedronVolume( const Tetrahedron& t) const { - const typename DataTypes::VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const typename DataTypes::VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); Real volume = (Real)(tripleProduct(p[t[1]]-p[t[0]],p[t[2]]-p[t[0]],p[t[3]]-p[t[0]])/6.0); if(volume<0) volume=-volume; @@ -563,7 +563,7 @@ template void TetrahedronSetGeometryAlgorithms::computeTetrahedronVolume( BasicArrayInterface &ai) const { const sofa::type::vector &ta = this->m_topology->getTetrahedra(); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); for (unsigned int i=0; i typename DataTypes::Real TetrahedronSetGeometryAlgorithms::computeDihedralAngle(const TetraID tetraId, const EdgeID edgeId) const { Real angle = 0.0; - const typename DataTypes::VecCoord& positions = (this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& positions = (this->object->read(core::vec_id::read_access::position)->getValue()); const Tetrahedron& tetra = this->m_topology->getTetrahedron(tetraId); const EdgesInTetrahedron& edgeIds = this->m_topology->getEdgesInTetrahedron(tetraId); const Edge& edge = this->m_topology->getEdge(edgeIds[edgeId]); @@ -620,7 +620,7 @@ template void TetrahedronSetGeometryAlgorithms< DataTypes >::getTetraInBall(const TetraID ind_ta, const TetraID ind_tb, sofa::type::vector &indices) const { - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); const Tetrahedron ta=this->m_topology->getTetrahedron(ind_ta); const Tetrahedron tb=this->m_topology->getTetrahedron(ind_tb); @@ -646,7 +646,7 @@ void TetrahedronSetGeometryAlgorithms< DataTypes >::getTetraInBall(const TetraID { Real d = r; const Tetrahedron ta=this->m_topology->getTetrahedron(ind_ta); - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); const typename DataTypes::Coord& ca=(vect_c[ta[0]]+vect_c[ta[1]]+vect_c[ta[2]]+vect_c[ta[3]])*0.25; sofa::type::Vec<3,Real> pa; @@ -745,7 +745,7 @@ void TetrahedronSetGeometryAlgorithms< DataTypes >::getTetraInBall(const Coord& msg_error() << "getTetraInBall, Can't find the seed."; Real d = r; // const Tetrahedron &ta=this->m_topology->getTetrahedron(ind_ta); - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); TetrahedronID t_test=ind_ta; indices.push_back(t_test); @@ -822,7 +822,7 @@ template void TetrahedronSetGeometryAlgorithms::getIntersectionPointWithPlane(const TetraID ind_ta, const sofa::type::Vec<3,Real>& planP0, const sofa::type::Vec<3,Real>& normal, sofa::type::vector< sofa::type::Vec<3,Real> >& intersectedPoint, SeqEdges& intersectedEdge) { - const typename DataTypes::VecCoord& vect_c = (this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c = (this->object->read(core::vec_id::read_access::position)->getValue()); const EdgesInTetrahedron& edgesInTetra = this->m_topology->getEdgesInTetrahedron(ind_ta); const SeqEdges& edges = this->m_topology->getEdges(); @@ -876,7 +876,7 @@ bool TetrahedronSetGeometryAlgorithms< DataTypes >::checkNodeSequence(const Tetr template bool TetrahedronSetGeometryAlgorithms::checkNodeSequence(const Tetrahedron& tetra) const { - const typename DataTypes::VecCoord& vect_c = (this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c = (this->object->read(core::vec_id::read_access::position)->getValue()); sofa::type::Vec<3,Real> vec[3]; for(int i=1; i<4; i++) { @@ -894,7 +894,7 @@ bool TetrahedronSetGeometryAlgorithms::checkNodeSequence(const Tetrah template< class DataTypes> bool TetrahedronSetGeometryAlgorithms< DataTypes >::isTetrahedronElongated(const TetraID tetraId, SReal factorLength) const { - const typename DataTypes::VecCoord& coords = (this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& coords = (this->object->read(core::vec_id::read_access::position)->getValue()); const Tetrahedron& tetra = this->m_topology->getTetrahedron(tetraId); typename DataTypes::VecCoord points; @@ -3212,7 +3212,7 @@ void TetrahedronSetGeometryAlgorithms::draw(const core::visual::Visua const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); vparams->drawTool()->disableLighting(); - const VecCoord& coords =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& coords =(this->object->read(core::vec_id::read_access::position)->getValue()); //Draw tetra indices if (d_showTetrahedraIndices.getValue() && this->m_topology->getNbTetrahedra() != 0) { diff --git a/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/TriangleSetGeometryAlgorithms.inl b/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/TriangleSetGeometryAlgorithms.inl index 3aa76248417..5f10984e323 100644 --- a/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/TriangleSetGeometryAlgorithms.inl +++ b/Sofa/Component/Topology/Container/Dynamic/src/sofa/component/topology/container/dynamic/TriangleSetGeometryAlgorithms.inl @@ -289,7 +289,7 @@ template< class DataTypes> void TriangleSetGeometryAlgorithms< DataTypes >::computeTriangleAABB(const TriangleID i, Coord& minCoord, Coord& maxCoord) const { const Triangle &t = this->m_topology->getTriangle(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); for(PointID i=0; i<3; ++i) { @@ -302,7 +302,7 @@ template typename DataTypes::Coord TriangleSetGeometryAlgorithms::computeTriangleCenter(const TriangleID i) const { const Triangle &t = this->m_topology->getTriangle(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); return (p[t[0]] + p[t[1]] + p[t[2]]) / (Real) 3.0; } @@ -311,7 +311,7 @@ template typename DataTypes::Coord TriangleSetGeometryAlgorithms::computeRestTriangleCenter(const TriangleID i) const { const Triangle &t = this->m_topology->getTriangle(i); - const typename DataTypes::VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const typename DataTypes::VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); return (p[t[0]] + p[t[1]] + p[t[2]]) / (Real) 3.0; } @@ -321,7 +321,7 @@ void TriangleSetGeometryAlgorithms::computeTriangleCircumcenterBaryCo const TriangleID i) const { const Triangle &t = this->m_topology->getTriangle(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); Real a2, b2, c2; // square lengths of the 3 edges a2 = (p[t[1]]-p[t[0]]).norm2(); b2 = (p[t[2]]-p[t[1]]).norm2(); @@ -341,7 +341,7 @@ template typename DataTypes::Coord TriangleSetGeometryAlgorithms::computeTriangleCircumcenter(const TriangleID i) const { const Triangle &t = this->m_topology->getTriangle(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); sofa::type::Vec<3,Real> barycentricCoords; computeTriangleCircumcenterBaryCoefs(barycentricCoords, i); @@ -353,7 +353,7 @@ template< class DataTypes> void TriangleSetGeometryAlgorithms< DataTypes >::getTriangleVertexCoordinates(const TriangleID i, Coord pnt[3]) const { const Triangle &t = this->m_topology->getTriangle(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); for(PointID i=0; i<3; ++i) { @@ -365,7 +365,7 @@ template< class DataTypes> void TriangleSetGeometryAlgorithms< DataTypes >::getRestTriangleVertexCoordinates(const TriangleID i, Coord pnt[3]) const { const Triangle &t = this->m_topology->getTriangle(i); - const typename DataTypes::VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const typename DataTypes::VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); for(PointID i=0; i<3; ++i) { @@ -377,7 +377,7 @@ template< class DataTypes> typename DataTypes::Real TriangleSetGeometryAlgorithms< DataTypes >::computeTriangleArea( const TriangleID i) const { const Triangle &t = this->m_topology->getTriangle(i); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); Real area = (Real)(areaProduct(p[t[1]]-p[t[0]], p[t[2]]-p[t[0]]) * 0.5); return area; } @@ -386,7 +386,7 @@ template< class DataTypes> typename DataTypes::Real TriangleSetGeometryAlgorithms< DataTypes >::computeRestTriangleArea( const TriangleID i) const { const Triangle &t = this->m_topology->getTriangle(i); - const typename DataTypes::VecCoord& p = (this->object->read(core::ConstVecCoordId::restPosition())->getValue()); + const typename DataTypes::VecCoord& p = (this->object->read(core::vec_id::read_access::restPosition)->getValue()); Real area = (Real) (areaProduct(p[t[1]]-p[t[0]],p[t[2]]-p[t[0]]) * 0.5); return area; } @@ -396,7 +396,7 @@ template void TriangleSetGeometryAlgorithms::computeTriangleArea( BasicArrayInterface &ai) const { const sofa::type::vector &ta = this->m_topology->getTriangles(); - const typename DataTypes::VecCoord& p =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& p =(this->object->read(core::vec_id::read_access::position)->getValue()); for (size_t i=0; i::computeTriangleArea( BasicArrayIn template auto TriangleSetGeometryAlgorithms< DataTypes >::computeBaryEdgePoint(PointID p0, PointID p1, Real coord_p) const -> sofa::type::Vec<3, Real> { - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); sofa::type::Vec<3,Real> c0; c0 = vect_c[p0]; sofa::type::Vec<3,Real> c1; c1 = vect_c[p1]; @@ -421,7 +421,7 @@ auto TriangleSetGeometryAlgorithms< DataTypes >::computeBaryEdgePoint(PointID p0 template auto TriangleSetGeometryAlgorithms< DataTypes >::computeBaryTrianglePoint(PointID p0, PointID p1, PointID p2, sofa::type::Vec<3,Real>& coord_p) const -> sofa::type::Vec<3, Real> { - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); sofa::type::Vec<3,Real> c0; c0 = vect_c[p0]; sofa::type::Vec<3,Real> c1; c1 = vect_c[p1]; @@ -436,7 +436,7 @@ auto TriangleSetGeometryAlgorithms< DataTypes >::getOppositePoint(PointID ind_p, const Edge& indices, Real coord_p) const -> sofa::type::Vec<3, Real> { - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); const typename DataTypes::Coord& c1 = vect_c[indices[0]]; const typename DataTypes::Coord& c2 = vect_c[indices[1]]; @@ -466,7 +466,7 @@ template auto TriangleSetGeometryAlgorithms< DataTypes >::computeTriangleNormal(const TriangleID ind_t) const -> sofa::type::Vec<3, Real> { const Triangle &t = this->m_topology->getTriangle(ind_t); - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); sofa::type::Vec<3, Real> p0; DataTypes::get(p0[0], p0[1], p0[2], vect_c[t[0]]); sofa::type::Vec<3, Real> p1; DataTypes::get(p1[0], p1[1], p1[2], vect_c[t[1]]); @@ -507,7 +507,7 @@ auto TriangleSetGeometryAlgorithms< DataTypes >::compute3PointsBarycoefs( const Real ZERO = 1e-12; sofa::type::vector< SReal > baryCoefs; - const typename DataTypes::VecCoord& vect_c = (bRest ? (this->object->read(core::ConstVecCoordId::restPosition())->getValue()) : (this->object->read(core::ConstVecCoordId::position())->getValue())); + const typename DataTypes::VecCoord& vect_c = (bRest ? (this->object->read(core::vec_id::read_access::restPosition)->getValue()) : (this->object->read(core::vec_id::read_access::position)->getValue())); const typename DataTypes::Coord& c0 = vect_c[ind_p1]; const typename DataTypes::Coord& c1 = vect_c[ind_p2]; @@ -560,7 +560,7 @@ template void TriangleSetGeometryAlgorithms< DataTypes >::computeClosestIndexPair(const TriangleID ind_ta, const TriangleID ind_tb, PointID &ind1, PointID &ind2) const { - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); const Triangle &ta=this->m_topology->getTriangle(ind_ta); const Triangle &tb=this->m_topology->getTriangle(ind_tb); @@ -617,8 +617,8 @@ bool TriangleSetGeometryAlgorithms< DataTypes >::isPointInsideTriangle(const Tri { const Real ZERO = -1e-12; const typename DataTypes::VecCoord& vect_c = bRest - ? (this->object->read(core::ConstVecCoordId::restPosition())->getValue()) - :(this->object->read(core::ConstVecCoordId::position())->getValue()); + ? (this->object->read(core::vec_id::read_access::restPosition)->getValue()) + :(this->object->read(core::vec_id::read_access::position)->getValue()); const Triangle &t=this->m_topology->getTriangle(ind_t); const typename DataTypes::Coord& c0=vect_c[t[0]]; @@ -755,7 +755,7 @@ bool TriangleSetGeometryAlgorithms< DataTypes >::isPointInTriangle(const Triangl TriangleID &ind_t_test) const { const Real ZERO = 1e-12; - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); const Triangle &t=this->m_topology->getTriangle(ind_t); const typename DataTypes::Coord& c0=vect_c[t[0]]; @@ -900,7 +900,7 @@ bool TriangleSetGeometryAlgorithms< DataTypes >::isQuadDeulaunayOriented(const t { sofa::type::vector< Real > baryCoefs; - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); const typename DataTypes::Coord& c3 = vect_c[ind_q3]; const typename DataTypes::Coord& c4 = vect_c[ind_q4]; @@ -1024,7 +1024,7 @@ bool TriangleSetGeometryAlgorithms< DataTypes >::isTriangleInPlane(const Triangl // HYP : ind_p==t[0] or ind_p==t[1] or ind_p==t[2] - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); PointID ind_1; PointID ind_2; @@ -1082,7 +1082,7 @@ void TriangleSetGeometryAlgorithms< DataTypes >::prepareVertexDuplication(const { //HYP : if coord_from or coord_to == 0.0 or 1.0, ind_p is distinct from ind_from and from ind_to - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); const typename DataTypes::Coord& c_p = vect_c[ind_p]; sofa::type::Vec<3,Real> point_p; @@ -1325,7 +1325,7 @@ bool TriangleSetGeometryAlgorithms< DataTypes >::computeSegmentTriangleIntersect bool is_intersected = false; const Triangle &t=this->m_topology->getTriangle(ind_t); - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); bool is_full_01=(is_entered && ((t[0] == ind_first && t[1] == ind_second) || (t[1] == ind_first && t[0] == ind_second))); bool is_full_12=(is_entered && ((t[1] == ind_first && t[2] == ind_second) || (t[2] == ind_first && t[1] == ind_second))); @@ -1605,7 +1605,7 @@ bool TriangleSetGeometryAlgorithms< DataTypes >::computeIntersectionsLineTriangl bool is_validated = false; const Triangle& t = this->m_topology->getTriangle(ind_t); - const typename DataTypes::VecCoord& vect_c = (this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c = (this->object->read(core::vec_id::read_access::position)->getValue()); bool is_full_01 = (is_entered && ((t[0] == ind_first && t[1] == ind_second) || (t[1] == ind_first && t[0] == ind_second))); bool is_full_12 = (is_entered && ((t[1] == ind_first && t[2] == ind_second) || (t[2] == ind_first && t[1] == ind_second))); @@ -1958,7 +1958,7 @@ bool TriangleSetGeometryAlgorithms< DataTypes >::computeIntersectedPointsList(co else coords_list.push_back(1.0-coord_t); - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); sofa::type::Vec<3,Real> c_t_current; // WARNING : conversion from 'Real' to 'float', possible loss of data ! // typename DataTypes::Coord c_t_current[0]=(Real) ((1.0-coord_t)*((Real) (vect_c[indices[0]][0]))+coord_t*((Real) (vect_c[indices[1]][0]))); @@ -2225,7 +2225,7 @@ bool TriangleSetGeometryAlgorithms::computeIntersectedObjectsList (co { intersected_topoElements.push_back (sofa::geometry::ElementType::POINT); intersected_indices.push_back (last_point); - const typename DataTypes::VecCoord& realC =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& realC =(this->object->read(core::vec_id::read_access::position)->getValue()); for (unsigned int i = 0; i<3; i++) baryCoords[i]=realC[last_point][i]; } @@ -2284,7 +2284,7 @@ bool TriangleSetGeometryAlgorithms::computeIntersectedObjectsList (co template int TriangleSetGeometryAlgorithms::getTriangleInDirection(PointID p, const sofa::type::Vec<3,Real>& dir) const { - const typename DataTypes::VecCoord& vect_c =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& vect_c =(this->object->read(core::vec_id::read_access::position)->getValue()); const sofa::type::vector &shell=this->m_topology->getTrianglesAroundVertex(p); sofa::type::Vec<3,Real> dtest = dir; for (size_t i=0; i::Suture2Points(TriangleID ind_ta auto* state = this->getDOF(); - sofa::helper::WriteAccessor< Data > x_wA = *state->write(core::VecCoordId::position()); - sofa::helper::WriteAccessor< Data > v_wA = *state->write(core::VecDerivId::velocity()); + sofa::helper::WriteAccessor< Data > x_wA = *state->write(core::vec_id::write_access::position); + sofa::helper::WriteAccessor< Data > v_wA = *state->write(core::vec_id::write_access::velocity); DataTypes::set(x_wA[ind1], x_created[0], x_created[1], x_created[2]); DataTypes::set(v_wA[ind1], (Real) 0.0, (Real) 0.0, (Real) 0.0); @@ -3842,7 +3842,7 @@ int TriangleSetGeometryAlgorithms::SplitAlongPath(PointID ind_A, Coor new_triangles_id.push_back(next_triangle++); // Triangularize the remaining quad according to the delaunay criteria - const typename DataTypes::VecCoord& coords = (this->getDOF()->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& coords = (this->getDOF()->read(core::vec_id::read_access::position)->getValue()); for (unsigned int j = 0; j < 2; j++) { //Vec<3,Real> pos[4]; @@ -4125,7 +4125,7 @@ void TriangleSetGeometryAlgorithms::SnapAlongPath(sofa::type::vector< return; } - const typename DataTypes::VecCoord& coords = (this->getDOF()->read(core::ConstVecCoordId::position())->getValue()); + const typename DataTypes::VecCoord& coords = (this->getDOF()->read(core::vec_id::read_access::position)->getValue()); //// STEP 3 - Second loop necessary to find object on the neighborhood of a snapped point @@ -4732,7 +4732,7 @@ void TriangleSetGeometryAlgorithms::draw(const core::visual::VisualPa // Draw Triangles indices if (showTriangleIndices.getValue() && this->m_topology->getNbTriangles() != 0) { - const VecCoord& coords =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& coords =(this->object->read(core::vec_id::read_access::position)->getValue()); float scale = this->getIndicesScale(); //for triangles: @@ -4766,7 +4766,7 @@ void TriangleSetGeometryAlgorithms::draw(const core::visual::VisualPa const sofa::type::vector &triangleArray = this->m_topology->getTriangles(); // Draw triangle surfaces - const VecCoord& coords =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& coords =(this->object->read(core::vec_id::read_access::position)->getValue()); {// Draw Triangles std::vector pos; @@ -4830,7 +4830,7 @@ void TriangleSetGeometryAlgorithms::draw(const core::visual::VisualPa if (_drawNormals.getValue() && this->m_topology->getNbTriangles() != 0) { - const VecCoord& coords =(this->object->read(core::ConstVecCoordId::position())->getValue()); + const VecCoord& coords =(this->object->read(core::vec_id::read_access::position)->getValue()); const sofa::type::vector &triangleArray = this->m_topology->getTriangles(); const size_t nbrTtri = triangleArray.size(); diff --git a/Sofa/Component/Topology/Container/Grid/src/sofa/component/topology/container/grid/SparseGridTopology.cpp b/Sofa/Component/Topology/Container/Grid/src/sofa/component/topology/container/grid/SparseGridTopology.cpp index 69e575383c9..a52bcce657e 100644 --- a/Sofa/Component/Topology/Container/Grid/src/sofa/component/topology/container/grid/SparseGridTopology.cpp +++ b/Sofa/Component/Topology/Container/Grid/src/sofa/component/topology/container/grid/SparseGridTopology.cpp @@ -616,7 +616,7 @@ void SparseGridTopology::updateMesh() if (mecha_temp != nullptr && mecha_temp->getSize() < 2) //a triangle mesh has minimum 3elements { list_mesh.push_back(collisionTopology); - list_X.push_back(mecha_temp->write(core::VecCoordId::position())); + list_X.push_back(mecha_temp->write(core::vec_id::write_access::position)); } } diff --git a/Sofa/Component/Topology/Mapping/src/sofa/component/topology/mapping/Edge2QuadTopologicalMapping.cpp b/Sofa/Component/Topology/Mapping/src/sofa/component/topology/mapping/Edge2QuadTopologicalMapping.cpp index 4b46f4c3194..44436cb7187 100644 --- a/Sofa/Component/Topology/Mapping/src/sofa/component/topology/mapping/Edge2QuadTopologicalMapping.cpp +++ b/Sofa/Component/Topology/Mapping/src/sofa/component/topology/mapping/Edge2QuadTopologicalMapping.cpp @@ -181,10 +181,10 @@ void Edge2QuadTopologicalMapping::init() const unsigned int p0=i; Mat3x3 rotation; - (from_mstate->read(core::ConstVecCoordId::position())->getValue())[p0].writeRotationMatrix(rotation); + (from_mstate->read(core::vec_id::read_access::position)->getValue())[p0].writeRotationMatrix(rotation); Vec3 t; - t=(from_mstate->read(core::ConstVecCoordId::position())->getValue())[p0].getCenter(); + t=(from_mstate->read(core::vec_id::read_access::position)->getValue())[p0].getCenter(); Vec3 Y; Vec3 Z; @@ -192,7 +192,7 @@ void Edge2QuadTopologicalMapping::init() Y = rotation * Y0; Z = rotation * Z0; - helper::WriteAccessor< Data< Vec3Types::VecCoord > > to_x = *to_mstate->write(core::VecCoordId::position()); + helper::WriteAccessor< Data< Vec3Types::VecCoord > > to_x = *to_mstate->write(core::vec_id::write_access::position); for(unsigned int j=0; j * mstate = m_topology->getContext()->get< core::behavior::MechanicalState > (); //get the coordinates of the mechanical state - const auto &v_coords = mstate->read(core::ConstVecCoordId::position())->getValue(); + const auto &v_coords = mstate->read(core::vec_id::read_access::position)->getValue(); a = v_coords[a_last]; } @@ -1289,7 +1289,7 @@ void TopologicalChangeProcessor::inciseWithSavedIndices() { const core::behavior::MechanicalState* mstate = m_topology->getContext()->get >(); //get the coordinates of the mechanical state - const auto &v_coords = mstate->read(core::ConstVecCoordId::position())->getValue(); + const auto &v_coords = mstate->read(core::vec_id::read_access::position)->getValue(); a = v_coords[a_last]; } diff --git a/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.cpp b/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.cpp index eecafd203b8..93fcee2b451 100644 --- a/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.cpp +++ b/Sofa/Component/Visual/src/sofa/component/visual/VisualModelImpl.cpp @@ -641,7 +641,7 @@ void VisualModelImpl::applyTranslation(const SReal dx, const SReal dy, const SRe { const Coord d((Real)dx,(Real)dy,(Real)dz); - Data< VecCoord >* d_x = this->write(core::VecCoordId::position()); + Data< VecCoord >* d_x = this->write(core::vec_id::write_access::position); VecCoord &x = *d_x->beginEdit(); for (std::size_t i = 0; i < x.size(); i++) @@ -674,7 +674,7 @@ void VisualModelImpl::applyRotation(const SReal rx, const SReal ry, const SReal void VisualModelImpl::applyRotation(const Quat q) { - Data< VecCoord >* d_x = this->write(core::VecCoordId::position()); + Data< VecCoord >* d_x = this->write(core::vec_id::write_access::position); VecCoord &x = *d_x->beginEdit(); for (std::size_t i = 0; i < x.size(); i++) @@ -701,7 +701,7 @@ void VisualModelImpl::applyRotation(const Quat q) void VisualModelImpl::applyScale(const SReal sx, const SReal sy, const SReal sz) { - Data< VecCoord >* d_x = this->write(core::VecCoordId::position()); + Data< VecCoord >* d_x = this->write(core::vec_id::write_access::position); VecCoord &x = *d_x->beginEdit(); for (std::size_t i = 0; i < x.size(); i++) diff --git a/Sofa/GL/Component/Rendering3D/src/sofa/gl/component/rendering3d/DataDisplay.cpp b/Sofa/GL/Component/Rendering3D/src/sofa/gl/component/rendering3d/DataDisplay.cpp index d126f8ac906..6a86c95dc95 100644 --- a/Sofa/GL/Component/Rendering3D/src/sofa/gl/component/rendering3d/DataDisplay.cpp +++ b/Sofa/GL/Component/Rendering3D/src/sofa/gl/component/rendering3d/DataDisplay.cpp @@ -93,7 +93,7 @@ void DataDisplay::doUpdateVisual(const core::visual::VisualParams*) void DataDisplay::doDrawVisual(const core::visual::VisualParams* vparams) { - const VecCoord& x = this->read(sofa::core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->read(sofa::core::vec_id::read_access::position)->getValue(); const VecPointData &ptData = f_pointData.getValue(); const VecCellData &triData = f_triangleData.getValue(); const VecCellData &quadData = f_quadData.getValue(); @@ -445,7 +445,7 @@ void DataDisplay::doDrawVisual(const core::visual::VisualParams* vparams) void DataDisplay::computeNormals() { if( !m_topology ) return; - const VecCoord& x = this->read(sofa::core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->read(sofa::core::vec_id::read_access::position)->getValue(); m_normals.resize(x.size(),Vec3f(0,0,0)); diff --git a/Sofa/GL/Component/Rendering3D/src/sofa/gl/component/rendering3d/OglCylinderModel.cpp b/Sofa/GL/Component/Rendering3D/src/sofa/gl/component/rendering3d/OglCylinderModel.cpp index e1da5f23bc1..8042ea05b97 100644 --- a/Sofa/GL/Component/Rendering3D/src/sofa/gl/component/rendering3d/OglCylinderModel.cpp +++ b/Sofa/GL/Component/Rendering3D/src/sofa/gl/component/rendering3d/OglCylinderModel.cpp @@ -59,7 +59,7 @@ void OglCylinderModel::init() void OglCylinderModel::doDrawVisual(const core::visual::VisualParams* vparams) { - const VecCoord& pos = this->read( core::ConstVecCoordId::position() )->getValue(); + const VecCoord& pos = this->read( core::vec_id::read_access::position )->getValue(); vparams->drawTool()->setLightingEnabled(true); const float _radius = radius.getValue(); @@ -140,7 +140,7 @@ void OglCylinderModel::setColor(std::string color) void OglCylinderModel::exportOBJ(std::string name, std::ostream* out, std::ostream* /*mtl*/, Index& vindex, Index& /*nindex*/, Index& /*tindex*/, int& /*count*/) { - const VecCoord& x = this->read( core::ConstVecCoordId::position() )->getValue(); + const VecCoord& x = this->read( core::vec_id::read_access::position )->getValue(); const SeqEdges& edges = d_edges.getValue(); const int nbv = int(x.size()); diff --git a/Sofa/GUI/Common/src/sofa/gui/common/PickHandler.cpp b/Sofa/GUI/Common/src/sofa/gui/common/PickHandler.cpp index 75469311e36..ad2918679b6 100644 --- a/Sofa/GUI/Common/src/sofa/gui/common/PickHandler.cpp +++ b/Sofa/GUI/Common/src/sofa/gui/common/PickHandler.cpp @@ -286,8 +286,8 @@ void PickHandler::updateRay(const sofa::type::Vec3 &position,const sofa::type::V mouseCollision->getRay(0).setOrigin( position+orientation*interaction->mouseInteractor->getDistanceFromMouse() ); mouseCollision->getRay(0).setDirection( orientation ); - MechanicalPropagateOnlyPositionVisitor(sofa::core::mechanicalparams::defaultInstance(), 0, sofa::core::VecCoordId::position()).execute(mouseCollision->getContext()); - MechanicalPropagateOnlyPositionVisitor(sofa::core::mechanicalparams::defaultInstance(), 0, sofa::core::VecCoordId::freePosition()).execute(mouseCollision->getContext()); + MechanicalPropagateOnlyPositionVisitor(sofa::core::mechanicalparams::defaultInstance(), 0, sofa::core::vec_id::write_access::position).execute(mouseCollision->getContext()); + MechanicalPropagateOnlyPositionVisitor(sofa::core::mechanicalparams::defaultInstance(), 0, sofa::core::vec_id::write_access::freePosition).execute(mouseCollision->getContext()); if (needToCastRay()) { diff --git a/Sofa/GUI/Component/src/sofa/gui/component/performer/FixParticlePerformer.inl b/Sofa/GUI/Component/src/sofa/gui/component/performer/FixParticlePerformer.inl index 7ac20cb7094..c29717ca026 100644 --- a/Sofa/GUI/Component/src/sofa/gui/component/performer/FixParticlePerformer.inl +++ b/Sofa/GUI/Component/src/sofa/gui/component/performer/FixParticlePerformer.inl @@ -55,7 +55,7 @@ void FixParticlePerformer::start() mstateFixation->resize(1); { - helper::WriteAccessor > xData = *mstateFixation->write(core::VecCoordId::position()); + helper::WriteAccessor > xData = *mstateFixation->write(core::vec_id::write_access::position); xData.wref()[0] = fixPoint; } nodeFixation->addObject(mstateFixation); @@ -130,7 +130,7 @@ sofa::component::statecontainer::MechanicalObject< DataTypes >* FixParticlePerfo else if (b.mstate) { collisionState = dynamic_cast(b.mstate); - fixPoint = (collisionState->read(core::ConstVecCoordId::position())->getValue())[idx]; + fixPoint = (collisionState->read(core::vec_id::read_access::position)->getValue())[idx]; points.push_back(idx); } diff --git a/Sofa/GUI/Component/src/sofa/gui/component/performer/InciseAlongPathPerformer.cpp b/Sofa/GUI/Component/src/sofa/gui/component/performer/InciseAlongPathPerformer.cpp index 61b0594291a..fa08027fcbc 100644 --- a/Sofa/GUI/Component/src/sofa/gui/component/performer/InciseAlongPathPerformer.cpp +++ b/Sofa/GUI/Component/src/sofa/gui/component/performer/InciseAlongPathPerformer.cpp @@ -160,7 +160,7 @@ void InciseAlongPathPerformer::PerformCompleteIncision() // Get new coordinate of first incision point: sofa::component::statecontainer::MechanicalObject* MechanicalObject=nullptr; startBody.body->getContext()->get(MechanicalObject, sofa::core::objectmodel::BaseContext::SearchRoot); - const auto& positions = MechanicalObject->read(core::ConstVecCoordId::position())->getValue(); + const auto& positions = MechanicalObject->read(core::vec_id::read_access::position)->getValue(); const sofa::type::Vec3& the_point = positions[initialNbPoints]; // Get triangle index that will be incise diff --git a/Sofa/GUI/Component/src/sofa/gui/component/performer/RemovePrimitivePerformer.inl b/Sofa/GUI/Component/src/sofa/gui/component/performer/RemovePrimitivePerformer.inl index 7723b6f0ee9..fc56b975d13 100644 --- a/Sofa/GUI/Component/src/sofa/gui/component/performer/RemovePrimitivePerformer.inl +++ b/Sofa/GUI/Component/src/sofa/gui/component/performer/RemovePrimitivePerformer.inl @@ -569,7 +569,7 @@ typename RemovePrimitivePerformer::VecIds RemovePrimitivePerformerread(core::ConstVecCoordId::position())->getValue(); + const VecCoord& X = mstateCollision->read(core::vec_id::read_access::position)->getValue(); VecCoord baryCoord; baryCoord.resize (elementsToTest.size()); @@ -649,7 +649,7 @@ void RemovePrimitivePerformer::draw(const core::visual::VisualParams* if (mstateCollision == nullptr) return; - const VecCoord& X = mstateCollision->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& X = mstateCollision->read(core::vec_id::read_access::position)->getValue(); const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); vparams->drawTool()->disableLighting(); diff --git a/Sofa/GUI/Component/src/sofa/gui/component/performer/SuturePointPerformer.inl b/Sofa/GUI/Component/src/sofa/gui/component/performer/SuturePointPerformer.inl index caa880ee9e6..84398c3c180 100644 --- a/Sofa/GUI/Component/src/sofa/gui/component/performer/SuturePointPerformer.inl +++ b/Sofa/GUI/Component/src/sofa/gui/component/performer/SuturePointPerformer.inl @@ -111,13 +111,13 @@ void SuturePointPerformer::start() for (unsigned int i=0; i<3; i++) { - const sofa::type::Vec3& tmp = (MechanicalObject->read(core::ConstVecCoordId::position())->getValue())[ Triangle1[i] ]; + const sofa::type::Vec3& tmp = (MechanicalObject->read(core::vec_id::read_access::position)->getValue())[ Triangle1[i] ]; listCoords.push_back (tmp); } for (unsigned int i=0; i<3; i++) { - const sofa::type::Vec3& tmp = (MechanicalObject->read(core::ConstVecCoordId::position())->getValue())[ Triangle2[i] ]; + const sofa::type::Vec3& tmp = (MechanicalObject->read(core::vec_id::read_access::position)->getValue())[ Triangle2[i] ]; listCoords.push_back (tmp); } diff --git a/Sofa/GUI/Component/src/sofa/gui/component/performer/TopologicalChangeManager.cpp b/Sofa/GUI/Component/src/sofa/gui/component/performer/TopologicalChangeManager.cpp index e212344d391..86356f0b85e 100644 --- a/Sofa/GUI/Component/src/sofa/gui/component/performer/TopologicalChangeManager.cpp +++ b/Sofa/GUI/Component/src/sofa/gui/component/performer/TopologicalChangeManager.cpp @@ -555,7 +555,7 @@ bool TopologicalChangeManager::incisionTriangleModel(TriangleCollisionModel* mstate = currentTopology->getContext()->get >(); - const auto &v_coords = mstate->read(core::ConstVecCoordId::position())->getValue(); + const auto &v_coords = mstate->read(core::vec_id::read_access::position)->getValue(); coord_a = v_coords[last_indexPoint]; } diff --git a/Sofa/framework/Core/src/sofa/core/BaseMapping.h b/Sofa/framework/Core/src/sofa/core/BaseMapping.h index d6b0a8a3a01..4e71d332ef6 100644 --- a/Sofa/framework/Core/src/sofa/core/BaseMapping.h +++ b/Sofa/framework/Core/src/sofa/core/BaseMapping.h @@ -64,9 +64,9 @@ class SOFA_CORE_API BaseMapping : public virtual objectmodel::BaseObject virtual bool isLinear() const { return false; } /// Apply the transformation from the input model to the output model (like apply displacement from BehaviorModel to VisualModel) - virtual void apply (const MechanicalParams* mparams = mechanicalparams::defaultInstance(), MultiVecCoordId outPos = VecCoordId::position(), ConstMultiVecCoordId inPos = ConstVecCoordId::position() ) = 0; + virtual void apply (const MechanicalParams* mparams = mechanicalparams::defaultInstance(), MultiVecCoordId outPos = vec_id::write_access::position, ConstMultiVecCoordId inPos = vec_id::read_access::position ) = 0; /// Compute output velocity based on input velocity, using the linearized transformation (tangent operator). Also used to propagate small displacements. - virtual void applyJ(const MechanicalParams* mparams = mechanicalparams::defaultInstance(), MultiVecDerivId outVel = VecDerivId::velocity(), ConstMultiVecDerivId inVel = ConstVecDerivId::velocity() ) = 0; + virtual void applyJ(const MechanicalParams* mparams = mechanicalparams::defaultInstance(), MultiVecDerivId outVel = vec_id::write_access::velocity, ConstMultiVecDerivId inVel = vec_id::read_access::velocity ) = 0; /// Accessor to the input model of this mapping virtual type::vector getFrom() = 0; diff --git a/Sofa/framework/Core/src/sofa/core/ConstraintParams.cpp b/Sofa/framework/Core/src/sofa/core/ConstraintParams.cpp index 1a61da00d39..b23f8cc3305 100644 --- a/Sofa/framework/Core/src/sofa/core/ConstraintParams.cpp +++ b/Sofa/framework/Core/src/sofa/core/ConstraintParams.cpp @@ -31,11 +31,11 @@ namespace sofa::core ConstraintParams::ConstraintParams(const sofa::core::ExecParams& p) : sofa::core::ExecParams(p) - , m_x(ConstVecCoordId::position()) - , m_v(ConstVecDerivId::velocity()) - , m_j(MatrixDerivId::constraintJacobian()) - , m_dx(VecDerivId::dx()) - , m_lambda(VecDerivId::externalForce()) + , m_x(vec_id::read_access::position) + , m_v(vec_id::read_access::velocity) + , m_j(vec_id::write_access::constraintJacobian) + , m_dx(vec_id::write_access::dx) + , m_lambda(vec_id::write_access::externalForce) , m_constOrder (ConstraintOrder::POS_AND_VEL) , m_smoothFactor (1) { diff --git a/Sofa/framework/Core/src/sofa/core/Mapping.inl b/Sofa/framework/Core/src/sofa/core/Mapping.inl index 952be9208d3..48624dc065b 100644 --- a/Sofa/framework/Core/src/sofa/core/Mapping.inl +++ b/Sofa/framework/Core/src/sofa/core/Mapping.inl @@ -105,10 +105,10 @@ void Mapping::init() setNonMechanical(); } - apply(mechanicalparams::defaultInstance(), VecCoordId::position(), ConstVecCoordId::position()); - applyJ(mechanicalparams::defaultInstance(), VecDerivId::velocity(), ConstVecDerivId::velocity()); + apply(mechanicalparams::defaultInstance(), vec_id::write_access::position, vec_id::read_access::position); + applyJ(mechanicalparams::defaultInstance(), vec_id::write_access::velocity, vec_id::read_access::velocity); if (f_applyRestPosition.getValue()) - apply(mechanicalparams::defaultInstance(), VecCoordId::restPosition(), ConstVecCoordId::restPosition()); + apply(mechanicalparams::defaultInstance(), vec_id::write_access::restPosition, vec_id::read_access::restPosition); } template diff --git a/Sofa/framework/Core/src/sofa/core/MechanicalParams.cpp b/Sofa/framework/Core/src/sofa/core/MechanicalParams.cpp index 38b38eff928..4398ddc360d 100644 --- a/Sofa/framework/Core/src/sofa/core/MechanicalParams.cpp +++ b/Sofa/framework/Core/src/sofa/core/MechanicalParams.cpp @@ -34,11 +34,11 @@ MechanicalParams::MechanicalParams(const sofa::core::ExecParams& p) , m_dt(0.0) , m_implicit(false) , m_energy(false) - , m_x (ConstVecCoordId::position()) - , m_v (ConstVecDerivId::velocity()) - , m_f (ConstVecDerivId::force()) - , m_dx(ConstVecDerivId::dx()) - , m_df(ConstVecDerivId::dforce()) + , m_x (vec_id::read_access::position) + , m_v (vec_id::read_access::velocity) + , m_f (vec_id::read_access::force) + , m_dx(vec_id::read_access::dx) + , m_df(vec_id::read_access::dforce) , m_mFactor(0) , m_bFactor(0) , m_kFactor(0) diff --git a/Sofa/framework/Core/src/sofa/core/Multi2Mapping.inl b/Sofa/framework/Core/src/sofa/core/Multi2Mapping.inl index 586976046db..e95a1b2f195 100644 --- a/Sofa/framework/Core/src/sofa/core/Multi2Mapping.inl +++ b/Sofa/framework/Core/src/sofa/core/Multi2Mapping.inl @@ -221,10 +221,10 @@ void Multi2Mapping::init() } } - apply(mechanicalparams::defaultInstance() , VecCoordId::position(), ConstVecCoordId::position()); - applyJ(mechanicalparams::defaultInstance() , VecDerivId::velocity(), ConstVecDerivId::velocity()); + apply(mechanicalparams::defaultInstance() , vec_id::write_access::position, vec_id::read_access::position); + applyJ(mechanicalparams::defaultInstance() , vec_id::write_access::velocity, vec_id::read_access::velocity); if (f_applyRestPosition.getValue()) - apply(mechanicalparams::defaultInstance(), VecCoordId::restPosition(), ConstVecCoordId::restPosition()); + apply(mechanicalparams::defaultInstance(), vec_id::write_access::restPosition, vec_id::read_access::restPosition); } template < class In1, class In2, class Out > diff --git a/Sofa/framework/Core/src/sofa/core/MultiMapping.inl b/Sofa/framework/Core/src/sofa/core/MultiMapping.inl index 95a35fae2f1..b0c460635ba 100644 --- a/Sofa/framework/Core/src/sofa/core/MultiMapping.inl +++ b/Sofa/framework/Core/src/sofa/core/MultiMapping.inl @@ -128,10 +128,10 @@ void MultiMapping::init() } } - apply(mechanicalparams::defaultInstance() , VecCoordId::position(), ConstVecCoordId::position()); - applyJ(mechanicalparams::defaultInstance() , VecDerivId::velocity(), ConstVecDerivId::velocity()); + apply(mechanicalparams::defaultInstance() , vec_id::write_access::position, vec_id::read_access::position); + applyJ(mechanicalparams::defaultInstance() , vec_id::write_access::velocity, vec_id::read_access::velocity); if (f_applyRestPosition.getValue()) - apply(mechanicalparams::defaultInstance(), VecCoordId::restPosition(), ConstVecCoordId::restPosition()); + apply(mechanicalparams::defaultInstance(), vec_id::write_access::restPosition, vec_id::read_access::restPosition); } template diff --git a/Sofa/framework/Core/src/sofa/core/State.h b/Sofa/framework/Core/src/sofa/core/State.h index d0b7cd052f2..4a84cc332a4 100644 --- a/Sofa/framework/Core/src/sofa/core/State.h +++ b/Sofa/framework/Core/src/sofa/core/State.h @@ -85,12 +85,12 @@ class State : public virtual BaseState typedef helper::ReadAccessor > ReadVecCoord; typedef helper::WriteAccessor > WriteVecCoord; typedef helper::WriteOnlyAccessor > WriteOnlyVecCoord; - ReadVecCoord readPositions() const { return ReadVecCoord (*this->read (core::ConstVecCoordId::position())); } - WriteVecCoord writePositions() { return WriteVecCoord(*this->write(core::VecCoordId::position())); } - WriteOnlyVecCoord writeOnlyPositions() { return WriteOnlyVecCoord(*this->write(core::VecCoordId::position())); } - ReadVecCoord readRestPositions() const { return ReadVecCoord (*this->read (core::ConstVecCoordId::restPosition())); } - WriteVecCoord writeRestPositions() { return WriteVecCoord(*this->write(core::VecCoordId::restPosition())); } - WriteOnlyVecCoord writeOnlyRestPositions() { return WriteOnlyVecCoord(*this->write(core::VecCoordId::restPosition())); } + ReadVecCoord readPositions() const { return ReadVecCoord (*this->read (core::vec_id::read_access::position)); } + WriteVecCoord writePositions() { return WriteVecCoord(*this->write(core::vec_id::write_access::position)); } + WriteOnlyVecCoord writeOnlyPositions() { return WriteOnlyVecCoord(*this->write(core::vec_id::write_access::position)); } + ReadVecCoord readRestPositions() const { return ReadVecCoord (*this->read (core::vec_id::read_access::restPosition)); } + WriteVecCoord writeRestPositions() { return WriteVecCoord(*this->write(core::vec_id::write_access::restPosition)); } + WriteOnlyVecCoord writeOnlyRestPositions() { return WriteOnlyVecCoord(*this->write(core::vec_id::write_access::restPosition)); } typedef helper::ReadAccessor > ReadDeriv; typedef helper::WriteAccessor > WriteDeriv; @@ -98,16 +98,16 @@ class State : public virtual BaseState typedef helper::ReadAccessor > ReadVecDeriv; typedef helper::WriteAccessor > WriteVecDeriv; typedef helper::WriteOnlyAccessor > WriteOnlyVecDeriv; - ReadVecDeriv readVelocities() const { return ReadVecDeriv (*this->read (core::ConstVecDerivId::velocity())); } - WriteVecDeriv writeVelocities() { return WriteVecDeriv(*this->write(core::VecDerivId::velocity())); } - WriteOnlyVecDeriv writeOnlyVelocities() { return WriteOnlyVecDeriv(*this->write(core::VecDerivId::velocity())); } - ReadVecDeriv readForces() const { return ReadVecDeriv (*this->read (core::ConstVecDerivId::force())); } - WriteVecDeriv writeForces() { return WriteVecDeriv(*this->write(core::VecDerivId::force())); } - WriteOnlyVecDeriv writeOnlyForces() { return WriteOnlyVecDeriv(*this->write(core::VecDerivId::force())); } - ReadVecDeriv readDx() const { return ReadVecDeriv (*this->read (core::ConstVecDerivId::dx())); } - WriteVecDeriv writeDx() { return WriteVecDeriv(*this->write(core::VecDerivId::dx())); } - WriteOnlyVecDeriv writeOnlyDx() { return WriteOnlyVecDeriv(*this->write(core::VecDerivId::dx())); } - ReadVecDeriv readNormals() const { return ReadVecDeriv (*this->read (core::ConstVecDerivId::normal())); } + ReadVecDeriv readVelocities() const { return ReadVecDeriv (*this->read (core::vec_id::read_access::velocity)); } + WriteVecDeriv writeVelocities() { return WriteVecDeriv(*this->write(core::vec_id::write_access::velocity)); } + WriteOnlyVecDeriv writeOnlyVelocities() { return WriteOnlyVecDeriv(*this->write(core::vec_id::write_access::velocity)); } + ReadVecDeriv readForces() const { return ReadVecDeriv (*this->read (core::vec_id::read_access::force)); } + WriteVecDeriv writeForces() { return WriteVecDeriv(*this->write(core::vec_id::write_access::force)); } + WriteOnlyVecDeriv writeOnlyForces() { return WriteOnlyVecDeriv(*this->write(core::vec_id::write_access::force)); } + ReadVecDeriv readDx() const { return ReadVecDeriv (*this->read (core::vec_id::read_access::dx)); } + WriteVecDeriv writeDx() { return WriteVecDeriv(*this->write(core::vec_id::write_access::dx)); } + WriteOnlyVecDeriv writeOnlyDx() { return WriteOnlyVecDeriv(*this->write(core::vec_id::write_access::dx)); } + ReadVecDeriv readNormals() const { return ReadVecDeriv (*this->read (core::vec_id::read_access::normal)); } /// Stores all the VecDerivId corresponding to a force. They can then be accumulated AccumulationVecId accumulatedForces; diff --git a/Sofa/framework/Core/src/sofa/core/State.inl b/Sofa/framework/Core/src/sofa/core/State.inl index a09c49e1848..ae5f6423adb 100644 --- a/Sofa/framework/Core/src/sofa/core/State.inl +++ b/Sofa/framework/Core/src/sofa/core/State.inl @@ -42,7 +42,7 @@ template State::State() : accumulatedForces(*this) { - State::addToTotalForces(core::ConstVecDerivId::force()); + State::addToTotalForces(core::vec_id::read_access::force); } template @@ -74,7 +74,7 @@ const objectmodel::BaseData* State::baseRead(ConstVecId v) const template auto State::computeBBox() const -> sofa::type::TBoundingBox { - const VecCoord& x = read(ConstVecCoordId::position())->getValue(); + const VecCoord& x = read(vec_id::read_access::position)->getValue(); const size_t xSize = x.size(); if (xSize <= 0) diff --git a/Sofa/framework/Core/src/sofa/core/VecId.h b/Sofa/framework/Core/src/sofa/core/VecId.h index 3ae97942cdb..99fea5eeb8e 100644 --- a/Sofa/framework/Core/src/sofa/core/VecId.h +++ b/Sofa/framework/Core/src/sofa/core/VecId.h @@ -32,7 +32,7 @@ namespace sofa::core { /// Types of vectors that can be stored in State -enum VecType +enum class VecType : uint8_t { V_ALL = 0, V_COORD, @@ -40,47 +40,87 @@ enum VecType V_MATDERIV, }; +static constexpr inline VecType V_ALL = (VecType::V_ALL); +static constexpr inline VecType V_COORD = (VecType::V_COORD); +static constexpr inline VecType V_DERIV = (VecType::V_DERIV); +static constexpr inline VecType V_MATDERIV = (VecType::V_MATDERIV); + SOFA_CORE_API extern const std::unordered_map VecTypeLabels; +inline std::ostream& operator<<( std::ostream& out, const VecType& v ) +{ + out << VecTypeLabels.at(v); + return out; +} + /// Types of vectors that can be stored in State -enum VecAccess +enum class VecAccess : uint8_t { V_READ=0, V_WRITE, }; +static constexpr inline VecAccess V_READ = VecAccess::V_READ; +static constexpr inline VecAccess V_WRITE = VecAccess::V_WRITE; + + template class TVecId; template class TStandardVec; +enum class CoordState : uint8_t +{ + NULL_STATE, + POSITION, + REST_POSITION, + FREE_POSITION, + RESET_POSITION, + DYNAMIC_INDEX +}; template class TStandardVec { public: + + using State = CoordState; + typedef TVecId MyVecId; - static MyVecId position() { return MyVecId(1);} - static MyVecId restPosition() { return MyVecId(2);} - static MyVecId freePosition() { return MyVecId(3);} - static MyVecId resetPosition() { return MyVecId(4);} - enum { V_FIRST_DYNAMIC_INDEX = 5 }; ///< This is the first index used for dynamically allocated vectors + + template + static constexpr MyVecId state() + { + return MyVecId(static_cast>(v_state)); + } + + SOFA_ATTRIBUTE_DEPRECATED__POSITION() + static constexpr MyVecId position() { return state();} + SOFA_ATTRIBUTE_DEPRECATED__REST_POSITION() + static constexpr MyVecId restPosition() { return state();} + SOFA_ATTRIBUTE_DEPRECATED__FREE_POSITION() + static constexpr MyVecId freePosition() { return state();} + SOFA_ATTRIBUTE_DEPRECATED__RESET_POSITION() + static constexpr MyVecId resetPosition() { return state();} + + ///< This is the first index used for dynamically allocated vectors + static constexpr uint8_t V_FIRST_DYNAMIC_INDEX = static_cast(State::DYNAMIC_INDEX); static std::string getName(const MyVecId& v) { std::string result; switch(v.getIndex()) { - case 0: result+= "null"; + case static_cast(State::NULL_STATE): result+= "null"; break; - case 1: result+= "position"; + case static_cast(State::POSITION): result+= "position"; break; - case 2: result+= "restPosition"; + case static_cast(State::REST_POSITION): result+= "restPosition"; break; - case 3: result+= "freePosition"; + case static_cast(State::FREE_POSITION): result+= "freePosition"; break; - case 4: result+= "resetPosition"; + case static_cast(State::RESET_POSITION): result+= "resetPosition"; break; default: std::ostringstream out; @@ -96,54 +136,86 @@ class TStandardVec { switch(v.getIndex()) { - case 0: return {}; //null - case 1: return "States"; //position - case 2: return "Rest States"; //restPosition - case 3: return "Free Motion"; //freePosition - case 4: return "States"; // + case static_cast(State::NULL_STATE): return {}; + case static_cast(State::POSITION): return "States"; + case static_cast(State::REST_POSITION): return "Rest States"; + case static_cast(State::FREE_POSITION): return "Free Motion"; + case static_cast(State::RESET_POSITION): return "States"; default: return {}; } } }; +enum class DerivState : uint8_t +{ + NULL_STATE, + VELOCITY, + RESET_VELOCITY, + FREE_VELOCITY, + NORMAL, + FORCE, + EXTERNAL_FORCE, + DX, + DFORCE, + DYNAMIC_INDEX +}; + template class TStandardVec { public: typedef TVecId MyVecId; - static MyVecId velocity() { return MyVecId(1); } - static MyVecId resetVelocity() { return MyVecId(2); } - static MyVecId freeVelocity() { return MyVecId(3); } - static MyVecId normal() { return MyVecId(4); } - static MyVecId force() { return MyVecId(5); } - static MyVecId externalForce() { return MyVecId(6); } - static MyVecId dx() { return MyVecId(7); } - static MyVecId dforce() { return MyVecId(8); } - enum { V_FIRST_DYNAMIC_INDEX = 9 }; ///< This is the first index used for dynamically allocated vectors + using State = DerivState; + + template + static constexpr MyVecId state() + { + return MyVecId(static_cast>(v_state)); + } + + SOFA_ATTRIBUTE_DEPRECATED__VELOCITY() + static constexpr MyVecId velocity() { return state(); } + SOFA_ATTRIBUTE_DEPRECATED__RESET_VELOCITY() + static constexpr MyVecId resetVelocity() { return state(); } + SOFA_ATTRIBUTE_DEPRECATED__FREE_VELOCITY() + static constexpr MyVecId freeVelocity() { return state(); } + SOFA_ATTRIBUTE_DEPRECATED__NORMAL() + static constexpr MyVecId normal() { return state(); } + SOFA_ATTRIBUTE_DEPRECATED__FORCE() + static constexpr MyVecId force() { return state(); } + SOFA_ATTRIBUTE_DEPRECATED__EXTERNAL_FORCE() + static constexpr MyVecId externalForce() { return state(); } + SOFA_ATTRIBUTE_DEPRECATED__DX() + static constexpr MyVecId dx() { return state(); } + SOFA_ATTRIBUTE_DEPRECATED__DFORCE() + static constexpr MyVecId dforce() { return state(); } + + ///< This is the first index used for dynamically allocated vectors + static constexpr uint8_t V_FIRST_DYNAMIC_INDEX = static_cast(State::DYNAMIC_INDEX); static std::string getName(const MyVecId& v) { std::string result; switch(v.getIndex()) { - case 0: result+= "null"; + case static_cast(State::NULL_STATE): result+= "null"; break; - case 1: result+= "velocity"; + case static_cast(State::VELOCITY): result+= "velocity"; break; - case 2: result+= "resetVelocity"; + case static_cast(State::RESET_VELOCITY): result+= "resetVelocity"; break; - case 3: result+= "freeVelocity"; + case static_cast(State::FREE_VELOCITY): result+= "freeVelocity"; break; - case 4: result+= "normal"; + case static_cast(State::NORMAL): result+= "normal"; break; - case 5: result+= "force"; + case static_cast(State::FORCE): result+= "force"; break; - case 6: result+= "externalForce"; + case static_cast(State::EXTERNAL_FORCE): result+= "externalForce"; break; - case 7: result+= "dx"; + case static_cast(State::DX): result+= "dx"; break; - case 8: result+= "dforce"; + case static_cast(State::DFORCE): result+= "dforce"; break; default: std::ostringstream out; @@ -159,41 +231,63 @@ class TStandardVec { switch(v.getIndex()) { - case 0: return {}; //null - case 1: return "States"; //velocity - case 2: return "States"; //resetVelocity - case 3: return "Free Motion"; //freeVelocity - case 4: return "States"; //normal - case 5: return "Force"; //force - case 6: return "Force"; //externalForce - case 7: return "States"; //dx - case 8: return "Force"; //dforce + case static_cast(State::NULL_STATE): return {}; + case static_cast(State::VELOCITY): + case static_cast(State::DX): + case static_cast(State::NORMAL): + case static_cast(State::RESET_VELOCITY): return "States"; + + case static_cast(State::FREE_VELOCITY): return "Free Motion"; + + case static_cast(State::FORCE): + case static_cast(State::DFORCE): + case static_cast(State::EXTERNAL_FORCE): return "Force"; default: return {}; } } }; +enum class MatrixDerivState : uint8_t +{ + NULL_STATE, + CONSTRAINT_JACOBIAN, + MAPPING_JACOBIAN, + DYNAMIC_INDEX +}; + template class TStandardVec { public: + + using State = MatrixDerivState; + typedef TVecId MyVecId; - static MyVecId constraintJacobian() { return MyVecId(1);} // jacobian matrix of constraints - static MyVecId mappingJacobian() { return MyVecId(2);} // accumulated matrix of the mappings + template + static constexpr MyVecId state() + { + return MyVecId(static_cast>(v_state)); + } + + SOFA_ATTRIBUTE_DEPRECATED__CONSTRAINT_JACOBIAN() + static constexpr MyVecId constraintJacobian() { return state();} // jacobian matrix of constraints + SOFA_ATTRIBUTE_DEPRECATED__MAPPING_JACOBIAN() + static constexpr MyVecId mappingJacobian() { return state();} // accumulated matrix of the mappings - enum { V_FIRST_DYNAMIC_INDEX = 3 }; ///< This is the first index used for dynamically allocated vectors + ///< This is the first index used for dynamically allocated vectors + static constexpr uint8_t V_FIRST_DYNAMIC_INDEX = static_cast(State::DYNAMIC_INDEX); static std::string getName(const MyVecId& v) { std::string result; switch(v.getIndex()) { - case 0: result+= "null"; + case static_cast(State::NULL_STATE): result+= "null"; break; - case 1: result+= "holonomic"; + case static_cast(State::CONSTRAINT_JACOBIAN): result+= "holonomic"; break; - case 2: result+= "nonHolonomic"; + case static_cast(State::MAPPING_JACOBIAN): result+= "nonHolonomic"; break; default: std::ostringstream out; @@ -209,9 +303,9 @@ class TStandardVec { switch(v.getIndex()) { - case 0: return {}; //null - case 1: return "Jacobian"; //constraintJacobian - case 2: return "Jacobian"; //mappingJacobian + case static_cast(State::NULL_STATE): return {}; //null + case static_cast(State::CONSTRAINT_JACOBIAN): + case static_cast(State::MAPPING_JACOBIAN): return "Jacobian"; default: return {}; } } @@ -267,17 +361,26 @@ class TStandardVec /// for performance reasons (typically when working with TMultiVecId instances, which would otherwise copy maps of TVecId). /// This is (a little) less efficient for non V_ALL versions, but is without comparison with the loss of performance /// with the typical operation of passing a stored "TMultiVecId" to a method taking a "const TMultiVecId&". -class BaseVecId +class SOFA_CORE_API BaseVecId { public: - VecType getType() const { return type; } - unsigned int getIndex() const { return index; } + [[nodiscard]] constexpr VecType getType() const + { + return type; + } + + [[nodiscard]] constexpr unsigned int getIndex() const + { + return index; + } VecType type; unsigned int index; protected: - BaseVecId(VecType t, unsigned int i) : type(t), index(i) {} + constexpr BaseVecId(VecType t, unsigned int i) + : type(t), index(i) + {} }; /// This class is only here as fix for a VC2010 compiler otherwise padding TVecId with 4 more bytes than TVecId, @@ -298,23 +401,23 @@ template class TVecId : public BaseVecId, public TStandardVec, public VecIdAlignFix { public: - TVecId() : BaseVecId(vtype, 0) { } - TVecId(unsigned int i) : BaseVecId(vtype, i) { } + constexpr TVecId() : BaseVecId(vtype, 0) { } + explicit constexpr TVecId(unsigned int i) : BaseVecId(vtype, i) { } /// Copy constructor - TVecId(const TVecId & v) : BaseVecId(vtype, v.getIndex()) {} + constexpr TVecId(const TVecId & v) : BaseVecId(vtype, v.getIndex()) {} /// Copy from another VecId, possibly with another type of access, with the /// constraint that the access must be compatible (i.e. cannot create /// a write-access VecId from a read-only VecId. template - TVecId(const TVecId& v) : BaseVecId(vtype, v.getIndex()) + constexpr TVecId(const TVecId& v) : BaseVecId(vtype, v.getIndex()) { static_assert(vaccess2 >= vaccess, "Copy from a read-only vector id into a read/write vector id is forbidden."); } template - explicit TVecId(const TVecId& v) : BaseVecId(vtype, v.getIndex()) + constexpr explicit TVecId(const TVecId& v) : BaseVecId(vtype, v.getIndex()) { static_assert(vaccess2 >= vaccess, "Copy from a read-only vector id into a read/write vector id is forbidden."); #ifndef NDEBUG @@ -324,14 +427,14 @@ class TVecId : public BaseVecId, public TStandardVec, public Vec // Copy assignment - TVecId & operator=(const TVecId& other) { + constexpr TVecId & operator=(const TVecId& other) { this->index = other.index; this->type = other.type; return *this; } template - TVecId & operator=(const TVecId& other) { + constexpr TVecId & operator=(const TVecId& other) { static_assert(vaccess2 >= vaccess, "Copy from a read-only vector id into a read/write vector id is forbidden."); this->index = other.index; this->type = other.type; @@ -339,7 +442,7 @@ class TVecId : public BaseVecId, public TStandardVec, public Vec } template - TVecId & operator=(const TVecId& other) { + constexpr TVecId & operator=(const TVecId& other) { static_assert(vaccess2 >= vaccess, "Copy from a read-only vector id into a read/write vector id is forbidden."); #ifndef NDEBUG assert(other.getType() == vtype); @@ -351,25 +454,41 @@ class TVecId : public BaseVecId, public TStandardVec, public Vec template - bool operator==(const TVecId& v) const + constexpr bool operator==(const TVecId& v) const { return getType() == v.getType() && getIndex() == v.getIndex(); } template - bool operator!=(const TVecId& v) const + constexpr bool operator!=(const TVecId& v) const { return getType() != v.getType() || getIndex() != v.getIndex(); } - static TVecId null() { return TVecId(0);} - bool isNull() const { return this->index == 0; } + using TStandardVec::state; + using State = typename TStandardVec::State; - std::string getName() const + template + static constexpr TVecId state() + { + return TVecId(static_cast>(v_state)); + } + + static constexpr TVecId null() + { + return TStandardVec::template state(); + } + + [[nodiscard]] constexpr bool isNull() const + { + return this->index == static_cast(State::NULL_STATE); + } + + [[nodiscard]] std::string getName() const { return TStandardVec::getName(*this); } - std::string getGroup() const + [[nodiscard]] std::string getGroup() const { return TStandardVec::getGroup(*this); } @@ -386,20 +505,20 @@ template class TVecId : public BaseVecId, public TStandardVec { public: - TVecId() : BaseVecId(V_ALL, 0) { } - TVecId(VecType t, unsigned int i) : BaseVecId(t, i) { } + constexpr TVecId() : BaseVecId(V_ALL, 0) { } + constexpr TVecId(VecType t, unsigned int i) : BaseVecId(t, i) { } /// Create a generic VecId from a specific or generic one, with the /// constraint that the access must be compatible (i.e. cannot create /// a write-access VecId from a read-only VecId. template - TVecId(const TVecId& v) : BaseVecId(v.getType(), v.getIndex()) + constexpr TVecId(const TVecId& v) : BaseVecId(v.getType(), v.getIndex()) { static_assert(vaccess2 >= vaccess, "Copy from a read-only vector id into a read/write vector id is forbidden."); } // Copy assignment template - TVecId & operator=(const TVecId& other) { + constexpr TVecId & operator=(const TVecId& other) { static_assert(vaccess2 >= vaccess, "Copy from a read-only vector id into a read/write vector id is forbidden."); this->index = other.index; this->type = other.type; @@ -408,25 +527,25 @@ class TVecId : public BaseVecId, public TStandardVec - bool operator==(const TVecId& v) const + constexpr bool operator==(const TVecId& v) const { return getType() == v.getType() && getIndex() == v.getIndex(); } template - bool operator!=(const TVecId& v) const + constexpr bool operator!=(const TVecId& v) const { return getType() != v.getType() || getIndex() != v.getIndex(); } - static TVecId null() { return TVecId(V_ALL, 0);} - bool isNull() const { return this->index == 0; } + static constexpr TVecId null() { return TVecId(V_ALL, 0);} + [[nodiscard]] constexpr bool isNull() const { return this->index == 0; } - std::string getName() const + [[nodiscard]] std::string getName() const { return TStandardVec::getName(*this); } - std::string getGroup() const + [[nodiscard]] std::string getGroup() const { return TStandardVec::getGroup(*this); } @@ -453,8 +572,50 @@ typedef TVecId VecDerivId; typedef TVecId ConstMatrixDerivId; typedef TVecId MatrixDerivId; -static_assert(sizeof(VecId) == sizeof(VecCoordId), ""); +static_assert(sizeof(VecId) == sizeof(VecCoordId)); +namespace vec_id +{ +namespace read_access +{ +static constexpr inline auto position = ConstVecCoordId::state(); +static constexpr inline auto restPosition = ConstVecCoordId::state(); +static constexpr inline auto freePosition = ConstVecCoordId::state(); +static constexpr inline auto resetPosition = ConstVecCoordId::state(); + +static constexpr inline auto velocity = ConstVecDerivId::state(); +static constexpr inline auto resetVelocity = ConstVecDerivId::state(); +static constexpr inline auto freeVelocity = ConstVecDerivId::state(); +static constexpr inline auto normal = ConstVecDerivId::state(); +static constexpr inline auto force = ConstVecDerivId::state(); +static constexpr inline auto externalForce = ConstVecDerivId::state(); +static constexpr inline auto dx = ConstVecDerivId::state(); +static constexpr inline auto dforce = ConstVecDerivId::state(); + +static constexpr inline auto constraintJacobian = ConstMatrixDerivId::state(); +static constexpr inline auto mappingJacobian = ConstMatrixDerivId::state(); +} + +namespace write_access +{ +static constexpr inline auto position = VecCoordId::state(); +static constexpr inline auto restPosition = VecCoordId::state(); +static constexpr inline auto freePosition = VecCoordId::state(); +static constexpr inline auto resetPosition = VecCoordId::state(); + +static constexpr inline auto velocity = VecDerivId::state(); +static constexpr inline auto resetVelocity = VecDerivId::state(); +static constexpr inline auto freeVelocity = VecDerivId::state(); +static constexpr inline auto normal = VecDerivId::state(); +static constexpr inline auto force = VecDerivId::state(); +static constexpr inline auto externalForce = VecDerivId::state(); +static constexpr inline auto dx = VecDerivId::state(); +static constexpr inline auto dforce = VecDerivId::state(); + +static constexpr inline auto constraintJacobian = MatrixDerivId::state(); +static constexpr inline auto mappingJacobian = MatrixDerivId::state(); +} +} /// Maps a VecType to a DataTypes member typedef representing the state variables /// Example: StateType_t returns the type DataTypes::Coord @@ -469,6 +630,10 @@ template struct StateType { using type = typename DataTypes::Deriv; }; +template struct StateType +{ + using type = typename DataTypes::MatrixDeriv; +}; /// Maps a VecType to a DataTypes member static variable representing the size of the state variables /// Example: StateTypeSize_v is the value of DataTypes::coord_total_size diff --git a/Sofa/framework/Core/src/sofa/core/behavior/BaseMechanicalState.h b/Sofa/framework/Core/src/sofa/core/behavior/BaseMechanicalState.h index 19de9fe7c61..d761f405d40 100644 --- a/Sofa/framework/Core/src/sofa/core/behavior/BaseMechanicalState.h +++ b/Sofa/framework/Core/src/sofa/core/behavior/BaseMechanicalState.h @@ -192,15 +192,15 @@ class SOFA_CORE_API BaseMechanicalState : public virtual BaseState } /// Set F = 0 - virtual void resetForce( const ExecParams* params, VecDerivId f = VecDerivId::force()) + virtual void resetForce( const ExecParams* params, VecDerivId f = vec_id::write_access::force) { vOp( params, f, ConstVecId::null(), ConstVecId::null(), 1.0 ); } /// Set Acc =0 - virtual void resetAcc( const ExecParams* params, VecDerivId a = VecDerivId::dx() ) + virtual void resetAcc( const ExecParams* params, VecDerivId a = vec_id::write_access::dx ) { vOp( params, a, ConstVecId::null(), ConstVecId::null(), 1.0 ); } /// Add stored external forces to F - virtual void accumulateForce( const ExecParams* params, VecDerivId f = VecDerivId::force() ) + virtual void accumulateForce( const ExecParams* params, VecDerivId f = vec_id::write_access::force ) { vOp( params, f, f, ConstVecId::externalForce(), 1.0 ); // f += externalForce } diff --git a/Sofa/framework/Core/src/sofa/core/behavior/ConstraintSolver.h b/Sofa/framework/Core/src/sofa/core/behavior/ConstraintSolver.h index 8c43b5258d6..89b209e1215 100644 --- a/Sofa/framework/Core/src/sofa/core/behavior/ConstraintSolver.h +++ b/Sofa/framework/Core/src/sofa/core/behavior/ConstraintSolver.h @@ -99,12 +99,12 @@ class SOFA_CORE_API ConstraintSolver : public virtual objectmodel::BaseObject /// @{ virtual MultiVecDerivId getLambda() const { - return MultiVecDerivId(VecDerivId::externalForce()); + return MultiVecDerivId(vec_id::write_access::externalForce); } virtual MultiVecDerivId getDx() const { - return MultiVecDerivId(VecDerivId::dx()); + return MultiVecDerivId(vec_id::write_access::dx); } /// @} diff --git a/Sofa/framework/Core/src/sofa/core/behavior/OdeSolver.h b/Sofa/framework/Core/src/sofa/core/behavior/OdeSolver.h index c1b36ddcd9f..9c1600f6fae 100644 --- a/Sofa/framework/Core/src/sofa/core/behavior/OdeSolver.h +++ b/Sofa/framework/Core/src/sofa/core/behavior/OdeSolver.h @@ -68,7 +68,7 @@ class SOFA_CORE_API OdeSolver : public virtual objectmodel::BaseObject /// /// Specify and execute all computation for timestep integration, i.e. /// advancing the state from time t to t+dt. - virtual void solve (const core::ExecParams* params, SReal dt) { solve(params, dt, VecCoordId::position(), VecDerivId::velocity()); } + virtual void solve (const core::ExecParams* params, SReal dt) { solve(params, dt, vec_id::write_access::position, vec_id::write_access::velocity); } /// Compute the residual of the newton iteration diff --git a/Sofa/framework/Core/src/sofa/core/config.h.in b/Sofa/framework/Core/src/sofa/core/config.h.in index 39592a7eb98..3742a00dc3f 100644 --- a/Sofa/framework/Core/src/sofa/core/config.h.in +++ b/Sofa/framework/Core/src/sofa/core/config.h.in @@ -113,3 +113,46 @@ #define SOFA_ATTRIBUTE_DEPRECATED__BASEWRITEDATAS() \ SOFA_ATTRIBUTE_DEPRECATED("v24.12", "v25.06", "This function is not used.") #endif + + + + +#ifdef SOFA_BUILD_SOFA_CORE + + #define SOFA_ATTRIBUTE_DEPRECATED__POSITION() + #define SOFA_ATTRIBUTE_DEPRECATED__REST_POSITION() + #define SOFA_ATTRIBUTE_DEPRECATED__FREE_POSITION() + #define SOFA_ATTRIBUTE_DEPRECATED__RESET_POSITION() + + #define SOFA_ATTRIBUTE_DEPRECATED__VELOCITY() + #define SOFA_ATTRIBUTE_DEPRECATED__RESET_VELOCITY() + #define SOFA_ATTRIBUTE_DEPRECATED__FREE_VELOCITY() + #define SOFA_ATTRIBUTE_DEPRECATED__NORMAL() + #define SOFA_ATTRIBUTE_DEPRECATED__FORCE() + #define SOFA_ATTRIBUTE_DEPRECATED__EXTERNAL_FORCE() + #define SOFA_ATTRIBUTE_DEPRECATED__DX() + #define SOFA_ATTRIBUTE_DEPRECATED__DFORCE() + + #define SOFA_ATTRIBUTE_DEPRECATED__CONSTRAINT_JACOBIAN() + #define SOFA_ATTRIBUTE_DEPRECATED__MAPPING_JACOBIAN() + +#else + + #define SOFA_ATTRIBUTE_DEPRECATED__POSITION() SOFA_ATTRIBUTE_DEPRECATED("v24.12", "v25.06", "Use the variable sofa::core::vec_id::read_access::position or sofa::core::vec_id::write_access::position instead") + #define SOFA_ATTRIBUTE_DEPRECATED__REST_POSITION() SOFA_ATTRIBUTE_DEPRECATED("v24.12", "v25.06", "Use the variable sofa::core::vec_id::read_access::restPosition or sofa::core::vec_id::write_access::restPosition instead") + #define SOFA_ATTRIBUTE_DEPRECATED__FREE_POSITION() SOFA_ATTRIBUTE_DEPRECATED("v24.12", "v25.06", "Use the variable sofa::core::vec_id::read_access::freePosition or sofa::core::vec_id::write_access::freePosition instead") + #define SOFA_ATTRIBUTE_DEPRECATED__RESET_POSITION() SOFA_ATTRIBUTE_DEPRECATED("v24.12", "v25.06", "Use the variable sofa::core::vec_id::read_access::resetPosition or sofa::core::vec_id::write_access::resetPosition instead") + + #define SOFA_ATTRIBUTE_DEPRECATED__VELOCITY() SOFA_ATTRIBUTE_DEPRECATED("v24.12", "v25.06", "Use the variable sofa::core::vec_id::read_access::velocity or sofa::core::vec_id::write_access::position velocity") + #define SOFA_ATTRIBUTE_DEPRECATED__RESET_VELOCITY() SOFA_ATTRIBUTE_DEPRECATED("v24.12", "v25.06", "Use the variable sofa::core::vec_id::read_access::resetVelocity or sofa::core::vec_id::write_access::resetVelocity instead") + #define SOFA_ATTRIBUTE_DEPRECATED__FREE_VELOCITY() SOFA_ATTRIBUTE_DEPRECATED("v24.12", "v25.06", "Use the variable sofa::core::vec_id::read_access::freeVelocity or sofa::core::vec_id::write_access::freeVelocity instead") + #define SOFA_ATTRIBUTE_DEPRECATED__NORMAL() SOFA_ATTRIBUTE_DEPRECATED("v24.12", "v25.06", "Use the variable sofa::core::vec_id::read_access::normal or sofa::core::vec_id::write_access::normal instead") + #define SOFA_ATTRIBUTE_DEPRECATED__FORCE() SOFA_ATTRIBUTE_DEPRECATED("v24.12", "v25.06", "Use the variable sofa::core::vec_id::read_access::force or sofa::core::vec_id::write_access::force instead") + #define SOFA_ATTRIBUTE_DEPRECATED__EXTERNAL_FORCE() SOFA_ATTRIBUTE_DEPRECATED("v24.12", "v25.06", "Use the variable sofa::core::vec_id::read_access::externalForce or sofa::core::vec_id::write_access::externalForce instead") + #define SOFA_ATTRIBUTE_DEPRECATED__DX() SOFA_ATTRIBUTE_DEPRECATED("v24.12", "v25.06", "Use the variable sofa::core::vec_id::read_access::dx or sofa::core::vec_id::write_access::dx instead") + #define SOFA_ATTRIBUTE_DEPRECATED__DFORCE() SOFA_ATTRIBUTE_DEPRECATED("v24.12", "v25.06", "Use the variable sofa::core::vec_id::read_access::dforce or sofa::core::vec_id::write_access::dforce instead") + + #define SOFA_ATTRIBUTE_DEPRECATED__CONSTRAINT_JACOBIAN() SOFA_ATTRIBUTE_DEPRECATED("v24.12", "v25.06", "Use the variable sofa::core::vec_id::read_access::constraintJacobian or sofa::core::vec_id::write_access::constraintJacobian instead") + #define SOFA_ATTRIBUTE_DEPRECATED__MAPPING_JACOBIAN() SOFA_ATTRIBUTE_DEPRECATED("v24.12", "v25.06", "Use the variable sofa::core::vec_id::read_access::mappingJacobian or sofa::core::vec_id::write_access::mappingJacobian instead") + +#endif diff --git a/Sofa/framework/Core/src/sofa/core/visual/VisualParams.cpp b/Sofa/framework/Core/src/sofa/core/visual/VisualParams.cpp index 563b65ee0c8..b04c28526c5 100644 --- a/Sofa/framework/Core/src/sofa/core/visual/VisualParams.cpp +++ b/Sofa/framework/Core/src/sofa/core/visual/VisualParams.cpp @@ -36,8 +36,8 @@ VisualParams::VisualParams() , m_pass(Std) , m_drawTool(nullptr) //, m_boundFrameBuffer(nullptr) - , m_x (ConstVecCoordId::position()) - , m_v (ConstVecDerivId::velocity()) + , m_x (vec_id::read_access::position) + , m_v (vec_id::read_access::velocity) , m_supportedAPIs(0) { m_displayFlags.setShowVisualModels(true); // BUGFIX: visual models are visible by default diff --git a/Sofa/framework/Core/src/sofa/core/visual/VisualState.inl b/Sofa/framework/Core/src/sofa/core/visual/VisualState.inl index 1032b0e3d6a..837d10b63aa 100644 --- a/Sofa/framework/Core/src/sofa/core/visual/VisualState.inl +++ b/Sofa/framework/Core/src/sofa/core/visual/VisualState.inl @@ -58,9 +58,9 @@ auto VisualState::write(core::VecCoordId v) -> Data::write(core::VecCoordId v) -> Data auto VisualState::read(core::ConstVecCoordId v) const -> const Data* { - if (v == core::VecCoordId::position()) + if (v == core::vec_id::write_access::position) return &m_positions; - if (v == core::VecCoordId::restPosition()) + if (v == core::vec_id::write_access::restPosition) return &m_restPositions; return nullptr; @@ -80,7 +80,7 @@ auto VisualState::read(core::ConstVecCoordId v) const -> const Data template< typename DataTypes > auto VisualState::write(core::VecDerivId v) -> Data* { - if (v == core::VecDerivId::normal()) + if (v == core::vec_id::write_access::normal) return &m_vnormals; return nullptr; @@ -89,7 +89,7 @@ auto VisualState::write(core::VecDerivId v) -> Data auto VisualState::read(core::ConstVecDerivId v) const -> const Data* { - if (v == core::VecDerivId::normal()) + if (v == core::vec_id::write_access::normal) return &m_vnormals; return nullptr; diff --git a/Sofa/framework/Core/test/VecId_test.cpp b/Sofa/framework/Core/test/VecId_test.cpp index 43580b4d696..00833a8a72f 100644 --- a/Sofa/framework/Core/test/VecId_test.cpp +++ b/Sofa/framework/Core/test/VecId_test.cpp @@ -22,44 +22,80 @@ #include #include +class DerivedBaseVecId : public sofa::core::BaseVecId +{ +public: + constexpr DerivedBaseVecId(sofa::core::VecType t, unsigned int i) : sofa::core::BaseVecId(t, i) {} +}; + +TEST(BaseVecId, constructor) +{ + static constexpr DerivedBaseVecId v(sofa::core::VecType::V_COORD, 4); + EXPECT_EQ(v.getIndex(), 4); + EXPECT_EQ(v.getType(), sofa::core::VecType::V_COORD); +} + TEST(VecId, name) { - auto position = sofa::core::VecCoordId::position(); + static constexpr auto position = sofa::core::VecCoordId::position(); EXPECT_EQ(position.getName(), "position(V_COORD)"); + EXPECT_EQ(sofa::core::vec_id::read_access::position.getName(), "position(V_COORD)"); + EXPECT_EQ(sofa::core::vec_id::write_access::position.getName(), "position(V_COORD)"); - auto restPosition = sofa::core::VecCoordId::restPosition(); + static constexpr auto restPosition = sofa::core::VecCoordId::restPosition(); EXPECT_EQ(restPosition.getName(), "restPosition(V_COORD)"); + EXPECT_EQ(sofa::core::vec_id::read_access::restPosition.getName(), "restPosition(V_COORD)"); + EXPECT_EQ(sofa::core::vec_id::write_access::restPosition.getName(), "restPosition(V_COORD)"); - auto freePosition = sofa::core::VecCoordId::freePosition(); + static constexpr auto freePosition = sofa::core::VecCoordId::freePosition(); EXPECT_EQ(freePosition.getName(), "freePosition(V_COORD)"); + EXPECT_EQ(sofa::core::vec_id::read_access::freePosition.getName(), "freePosition(V_COORD)"); + EXPECT_EQ(sofa::core::vec_id::write_access::freePosition.getName(), "freePosition(V_COORD)"); - auto resetPosition = sofa::core::VecCoordId::resetPosition(); + static constexpr auto resetPosition = sofa::core::VecCoordId::resetPosition(); EXPECT_EQ(resetPosition.getName(), "resetPosition(V_COORD)"); + EXPECT_EQ(sofa::core::vec_id::read_access::resetPosition.getName(), "resetPosition(V_COORD)"); + EXPECT_EQ(sofa::core::vec_id::write_access::resetPosition.getName(), "resetPosition(V_COORD)"); - - auto velocity = sofa::core::VecDerivId::velocity(); + static constexpr auto velocity = sofa::core::VecDerivId::velocity(); EXPECT_EQ(velocity.getName(), "velocity(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::read_access::velocity.getName(), "velocity(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::write_access::velocity.getName(), "velocity(V_DERIV)"); - auto resetVelocity = sofa::core::VecDerivId::resetVelocity(); + static constexpr auto resetVelocity = sofa::core::VecDerivId::resetVelocity(); EXPECT_EQ(resetVelocity.getName(), "resetVelocity(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::read_access::resetVelocity.getName(), "resetVelocity(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::write_access::resetVelocity.getName(), "resetVelocity(V_DERIV)"); - auto freeVelocity = sofa::core::VecDerivId::freeVelocity(); + static constexpr auto freeVelocity = sofa::core::VecDerivId::freeVelocity(); EXPECT_EQ(freeVelocity.getName(), "freeVelocity(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::read_access::freeVelocity.getName(), "freeVelocity(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::write_access::freeVelocity.getName(), "freeVelocity(V_DERIV)"); - auto normal = sofa::core::VecDerivId::normal(); + static constexpr auto normal = sofa::core::VecDerivId::normal(); EXPECT_EQ(normal.getName(), "normal(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::read_access::normal.getName(), "normal(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::write_access::normal.getName(), "normal(V_DERIV)"); - auto force = sofa::core::VecDerivId::force(); + static constexpr auto force = sofa::core::VecDerivId::force(); EXPECT_EQ(force.getName(), "force(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::read_access::force.getName(), "force(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::write_access::force.getName(), "force(V_DERIV)"); - auto externalForce = sofa::core::VecDerivId::externalForce(); + static constexpr auto externalForce = sofa::core::VecDerivId::externalForce(); EXPECT_EQ(externalForce.getName(), "externalForce(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::read_access::externalForce.getName(), "externalForce(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::write_access::externalForce.getName(), "externalForce(V_DERIV)"); - auto dx = sofa::core::VecDerivId::dx(); + static constexpr auto dx = sofa::core::VecDerivId::dx(); EXPECT_EQ(dx.getName(), "dx(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::read_access::dx.getName(), "dx(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::write_access::dx.getName(), "dx(V_DERIV)"); - auto dforce = sofa::core::VecDerivId::dforce(); + static constexpr auto dforce = sofa::core::VecDerivId::dforce(); EXPECT_EQ(dforce.getName(), "dforce(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::read_access::dforce.getName(), "dforce(V_DERIV)"); + EXPECT_EQ(sofa::core::vec_id::write_access::dforce.getName(), "dforce(V_DERIV)"); } diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/AnimateVisitor.cpp b/Sofa/framework/Simulation/Core/src/sofa/simulation/AnimateVisitor.cpp index 73d08e3ee2c..2c07778e0a9 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/AnimateVisitor.cpp +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/AnimateVisitor.cpp @@ -74,7 +74,7 @@ void AnimateVisitor::fwdInteractionForceField(simulation::Node*, core::behavior: { helper::ScopedAdvancedTimer timer("InteractionFF", obj); - const MultiVecDerivId ffId = VecDerivId::externalForce(); + const MultiVecDerivId ffId = vec_id::write_access::externalForce; MechanicalParams mparams; mparams.setDt(this->dt); obj->addForce(&mparams, ffId); @@ -141,12 +141,12 @@ Visitor::Result AnimateVisitor::processNodeTopDown(simulation::Node* node) core::ConstraintParams cparams; { unsigned int constraintId=0; - MechanicalBuildConstraintMatrix buildConstraintMatrix(&cparams, core::MatrixDerivId::constraintJacobian(), constraintId ); + MechanicalBuildConstraintMatrix buildConstraintMatrix(&cparams, core::vec_id::write_access::constraintJacobian, constraintId ); buildConstraintMatrix.execute(node); } { - MechanicalAccumulateMatrixDeriv accumulateMatrixDeriv(&cparams, core::MatrixDerivId::constraintJacobian()); + MechanicalAccumulateMatrixDeriv accumulateMatrixDeriv(&cparams, core::vec_id::write_access::constraintJacobian); accumulateMatrixDeriv.execute(node); } @@ -158,11 +158,11 @@ Visitor::Result AnimateVisitor::processNodeTopDown(simulation::Node* node) } MechanicalProjectPositionAndVelocityVisitor(&m_mparams, nextTime, - sofa::core::VecCoordId::position(), sofa::core::VecDerivId::velocity() + sofa::core::vec_id::write_access::position, sofa::core::vec_id::write_access::velocity ).execute( node ); MechanicalPropagateOnlyPositionAndVelocityVisitor(&m_mparams, nextTime, - VecCoordId::position(), - VecDerivId::velocity()).execute( node ); + vec_id::write_access::position, + vec_id::write_access::velocity).execute( node ); MechanicalEndIntegrationVisitor endVisitor(this->params, dt); node->execute(&endVisitor); diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/DefaultAnimationLoop.cpp b/Sofa/framework/Simulation/Core/src/sofa/simulation/DefaultAnimationLoop.cpp index ad80661f338..8c691bde48f 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/DefaultAnimationLoop.cpp +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/DefaultAnimationLoop.cpp @@ -190,7 +190,7 @@ void DefaultAnimationLoop::propagateIntegrateBeginEvent(const core::ExecParams* void DefaultAnimationLoop::accumulateMatrixDeriv(const core::ConstraintParams cparams) const { SCOPED_TIMER("accumulateMatrixDeriv"); - mechanicalvisitor::MechanicalAccumulateMatrixDeriv accumulateMatrixDeriv(&cparams, core::MatrixDerivId::constraintJacobian()); + mechanicalvisitor::MechanicalAccumulateMatrixDeriv accumulateMatrixDeriv(&cparams, core::vec_id::write_access::constraintJacobian); accumulateMatrixDeriv.execute(m_node); } @@ -226,7 +226,7 @@ void DefaultAnimationLoop::projectPositionAndVelocity(const SReal nextTime, cons { SCOPED_TIMER("projectPositionAndVelocity"); mechanicalvisitor::MechanicalProjectPositionAndVelocityVisitor(&mparams, nextTime, - sofa::core::VecCoordId::position(), sofa::core::VecDerivId::velocity() + sofa::core::vec_id::write_access::position, sofa::core::vec_id::write_access::velocity ).execute( m_node ); } @@ -234,8 +234,8 @@ void DefaultAnimationLoop::propagateOnlyPositionAndVelocity(const SReal nextTime { SCOPED_TIMER("propagateOnlyPositionAndVelocity"); mechanicalvisitor::MechanicalPropagateOnlyPositionAndVelocityVisitor(&mparams, nextTime, - core::VecCoordId::position(), - core::VecDerivId::velocity()).execute( m_node ); + core::vec_id::write_access::position, + core::vec_id::write_access::velocity).execute( m_node ); } void DefaultAnimationLoop::propagateCollisionBeginEvent(const core::ExecParams* params) const diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/MechanicalOperations.cpp b/Sofa/framework/Simulation/Core/src/sofa/simulation/MechanicalOperations.cpp index a050b22b631..3669e208d17 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/MechanicalOperations.cpp +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/MechanicalOperations.cpp @@ -79,61 +79,61 @@ MechanicalOperations::MechanicalOperations(const sofa::core::ExecParams* params, void MechanicalOperations::setX(core::MultiVecCoordId& v) { - if (v.getDefaultId().isNull()) v.setDefaultId(core::VecCoordId::position()); + if (v.getDefaultId().isNull()) v.setDefaultId(core::vec_id::write_access::position); mparams.setX(v); } void MechanicalOperations::setX(core::ConstMultiVecCoordId& v) { - if (v.getDefaultId().isNull()) v.setDefaultId(core::VecCoordId::position()); + if (v.getDefaultId().isNull()) v.setDefaultId(core::vec_id::write_access::position); mparams.setX(v); } void MechanicalOperations::setV(core::MultiVecDerivId& v) { - if (v.getDefaultId().isNull()) v.setDefaultId(core::VecDerivId::velocity()); + if (v.getDefaultId().isNull()) v.setDefaultId(core::vec_id::write_access::velocity); mparams.setV(v); } void MechanicalOperations::setV(core::ConstMultiVecDerivId& v) { - if (v.getDefaultId().isNull()) v.setDefaultId(core::VecDerivId::velocity()); + if (v.getDefaultId().isNull()) v.setDefaultId(core::vec_id::write_access::velocity); mparams.setV(v); } void MechanicalOperations::setF(core::MultiVecDerivId& v) { - if (v.getDefaultId().isNull()) v.setDefaultId(core::VecDerivId::force()); + if (v.getDefaultId().isNull()) v.setDefaultId(core::vec_id::write_access::force); mparams.setF(v); } void MechanicalOperations::setF(core::ConstMultiVecDerivId& v) { - if (v.getDefaultId().isNull()) v.setDefaultId(core::VecDerivId::force()); + if (v.getDefaultId().isNull()) v.setDefaultId(core::vec_id::write_access::force); mparams.setF(v); } void MechanicalOperations::setDx(core::MultiVecDerivId& v) { - if (v.getDefaultId().isNull()) v.setDefaultId(core::VecDerivId::dx()); + if (v.getDefaultId().isNull()) v.setDefaultId(core::vec_id::write_access::dx); mparams.setDx(v); } void MechanicalOperations::setDx(core::ConstMultiVecDerivId& v) { - if (v.getDefaultId().isNull()) v.setDefaultId(core::VecDerivId::dx()); + if (v.getDefaultId().isNull()) v.setDefaultId(core::vec_id::write_access::dx); mparams.setDx(v); } void MechanicalOperations::setDf(core::MultiVecDerivId& v) { - if (v.getDefaultId().isNull()) v.setDefaultId(core::VecDerivId::dforce()); + if (v.getDefaultId().isNull()) v.setDefaultId(core::vec_id::write_access::dforce); mparams.setDf(v); } void MechanicalOperations::setDf(core::ConstMultiVecDerivId& v) { - if (v.getDefaultId().isNull()) v.setDefaultId(core::VecDerivId::dforce()); + if (v.getDefaultId().isNull()) v.setDefaultId(core::vec_id::write_access::dforce); mparams.setDf(v); } @@ -356,7 +356,7 @@ void MechanicalOperations::computeContactDf(core::MultiVecDerivId df) void MechanicalOperations::computeAcc(SReal t, core::MultiVecDerivId a, core::MultiVecCoordId x, core::MultiVecDerivId v) { - MultiVecDerivId f( VecDerivId::force() ); + MultiVecDerivId f( vec_id::write_access::force ); setF(f); setDx(a); setX(x); @@ -383,7 +383,7 @@ void MechanicalOperations::computeForce(SReal t, core::MultiVecDerivId f, core:: void MechanicalOperations::computeContactAcc(SReal t, core::MultiVecDerivId a, core::MultiVecCoordId x, core::MultiVecDerivId v) { - MultiVecDerivId f( VecDerivId::force() ); + MultiVecDerivId f( vec_id::write_access::force ); setF(f); setDx(a); setX(x); diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/MechanicalOperations.h b/Sofa/framework/Simulation/Core/src/sofa/simulation/MechanicalOperations.h index b968b4d53b8..0a52f314f56 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/MechanicalOperations.h +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/MechanicalOperations.h @@ -87,7 +87,7 @@ class SOFA_SIMULATION_CORE_API MechanicalOperations /// accumulate $ df += (m M + b B + k K) velocity $ void addMBKv(core::MultiVecDerivId df, core::MatricesFactors::M m, core::MatricesFactors::B b, core::MatricesFactors::K k, bool clear = true, bool accumulate = true); /// Add dt*Gravity to the velocity - void addSeparateGravity(SReal dt, core::MultiVecDerivId result = core::VecDerivId::velocity() ); + void addSeparateGravity(SReal dt, core::MultiVecDerivId result = core::vec_id::write_access::velocity ); void computeContactForce(core::MultiVecDerivId result); void computeContactDf(core::MultiVecDerivId df); diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/SolveVisitor.cpp b/Sofa/framework/Simulation/Core/src/sofa/simulation/SolveVisitor.cpp index 2d57a449610..49f8aecb113 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/SolveVisitor.cpp +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/SolveVisitor.cpp @@ -42,7 +42,7 @@ void SolveVisitor::fwdInteractionForceField(Node* node, core::behavior::BaseInte { SOFA_UNUSED(node); - const core::MultiVecDerivId ffId = core::VecDerivId::externalForce(); + const core::MultiVecDerivId ffId = core::vec_id::write_access::externalForce; core::MechanicalParams mparams; mparams.setDt(dt); forceField->addForce(&mparams, ffId); @@ -118,13 +118,13 @@ SolveVisitor::SolveVisitor(const sofa::core::ExecParams* params, SReal _dt, bool { if(free) { - x = sofa::core::VecCoordId::freePosition(); - v = sofa::core::VecDerivId::freeVelocity(); + x = sofa::core::vec_id::write_access::freePosition; + v = sofa::core::vec_id::write_access::freeVelocity; } else { - x = sofa::core::VecCoordId::position(); - v = sofa::core::VecDerivId::velocity(); + x = sofa::core::vec_id::write_access::position; + v = sofa::core::vec_id::write_access::velocity; } if (m_parallelSolve) diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/SolveVisitor.h b/Sofa/framework/Simulation/Core/src/sofa/simulation/SolveVisitor.h index 2c91893f45a..5657e4818e3 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/SolveVisitor.h +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/SolveVisitor.h @@ -41,8 +41,8 @@ class SOFA_SIMULATION_CORE_API SolveVisitor : public Visitor SolveVisitor(const sofa::core::ExecParams* params, SReal _dt, - sofa::core::MultiVecCoordId X = sofa::core::VecCoordId::position(), - sofa::core::MultiVecDerivId V = sofa::core::VecDerivId::velocity(), + sofa::core::MultiVecCoordId X = sofa::core::vec_id::write_access::position, + sofa::core::MultiVecDerivId V = sofa::core::vec_id::write_access::velocity, bool _parallelSolve = false, bool computeForceIsolatedInteractionForceFields = false); diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/UpdateMappingVisitor.cpp b/Sofa/framework/Simulation/Core/src/sofa/simulation/UpdateMappingVisitor.cpp index 328b1076752..af3480029d5 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/UpdateMappingVisitor.cpp +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/UpdateMappingVisitor.cpp @@ -32,8 +32,8 @@ namespace sofa::simulation void UpdateMappingVisitor::processMapping(simulation::Node* n, core::BaseMapping* obj) { SOFA_UNUSED(n); - obj->apply(core::mechanicalparams::defaultInstance(), core::VecCoordId::position(), core::ConstVecCoordId::position()); - obj->applyJ(core::mechanicalparams::defaultInstance(), core::VecDerivId::velocity(), core::ConstVecDerivId::velocity()); + obj->apply(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::position, core::vec_id::read_access::position); + obj->applyJ(core::mechanicalparams::defaultInstance(), core::vec_id::write_access::velocity, core::vec_id::read_access::velocity); } void UpdateMappingVisitor::processMechanicalMapping(simulation::Node* n, core::BaseMapping* obj) diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalIntegrateConstraintVisitor.h b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalIntegrateConstraintVisitor.h index 16f57fbe481..9aa9504435c 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalIntegrateConstraintVisitor.h +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalIntegrateConstraintVisitor.h @@ -42,9 +42,9 @@ class SOFA_SIMULATION_CORE_API MechanicalIntegrateConstraintsVisitor : public Ba const core::ConstraintParams* cparams, double pf, double vf, sofa::core::ConstMultiVecDerivId correction, - sofa::core::MultiVecDerivId dx = sofa::core::MultiVecDerivId(sofa::core::VecDerivId::dx()), - sofa::core::MultiVecCoordId x = sofa::core::MultiVecCoordId(sofa::core::VecCoordId::position()), - sofa::core::MultiVecDerivId v = sofa::core::MultiVecDerivId(sofa::core::VecDerivId::velocity())); + sofa::core::MultiVecDerivId dx = sofa::core::MultiVecDerivId(sofa::core::vec_id::write_access::dx), + sofa::core::MultiVecCoordId x = sofa::core::MultiVecCoordId(sofa::core::vec_id::write_access::position), + sofa::core::MultiVecDerivId v = sofa::core::MultiVecDerivId(sofa::core::vec_id::write_access::velocity)); Result fwdMechanicalState(simulation::Node* /*node*/, core::behavior::BaseMechanicalState* ms) override; diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalIntegrationVisitor.cpp b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalIntegrationVisitor.cpp index b96f0b04cc8..f5ed9c38786 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalIntegrationVisitor.cpp +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalIntegrationVisitor.cpp @@ -49,21 +49,21 @@ Visitor::Result MechanicalIntegrationVisitor::fwdOdeSolver(simulation::Node* nod core::ConstraintParams cparams; { unsigned int constraintId=0; - MechanicalBuildConstraintMatrix buildConstraintMatrix(&cparams, core::MatrixDerivId::constraintJacobian(), constraintId ); + MechanicalBuildConstraintMatrix buildConstraintMatrix(&cparams, core::vec_id::write_access::constraintJacobian, constraintId ); buildConstraintMatrix.execute(node); } { - MechanicalAccumulateMatrixDeriv accumulateMatrixDeriv(&cparams, core::MatrixDerivId::constraintJacobian()); + MechanicalAccumulateMatrixDeriv accumulateMatrixDeriv(&cparams, core::vec_id::write_access::constraintJacobian); accumulateMatrixDeriv.execute(node); } obj->solve(params, dt); - MechanicalProjectPositionAndVelocityVisitor(&mparams, nextTime,core::VecCoordId::position(),core::VecDerivId::velocity() + MechanicalProjectPositionAndVelocityVisitor(&mparams, nextTime,core::vec_id::write_access::position,core::vec_id::write_access::velocity ).execute( node ); - MechanicalPropagateOnlyPositionAndVelocityVisitor(&mparams, nextTime,core::VecCoordId::position(),core::VecDerivId::velocity()).execute( node ); + MechanicalPropagateOnlyPositionAndVelocityVisitor(&mparams, nextTime,core::vec_id::write_access::position,core::vec_id::write_access::velocity).execute( node ); MechanicalEndIntegrationVisitor endVisitor( this->params, dt ); node->execute(&endVisitor); @@ -73,7 +73,7 @@ Visitor::Result MechanicalIntegrationVisitor::fwdOdeSolver(simulation::Node* nod Visitor::Result MechanicalIntegrationVisitor::fwdInteractionForceField(simulation::Node* /*node*/, core::behavior::BaseInteractionForceField* obj) { - const core::MultiVecDerivId ffId = core::VecDerivId::externalForce(); + const core::MultiVecDerivId ffId = core::vec_id::write_access::externalForce; core::MechanicalParams m_mparams(*this->params); m_mparams.setDt(this->dt); diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectJacobianMatrixVisitor.h b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectJacobianMatrixVisitor.h index 776fd3e860d..62c07c007b8 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectJacobianMatrixVisitor.h +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectJacobianMatrixVisitor.h @@ -32,7 +32,7 @@ class SOFA_SIMULATION_CORE_API MechanicalProjectJacobianMatrixVisitor : public M sofa::core::MultiMatrixDerivId cId; SReal t; MechanicalProjectJacobianMatrixVisitor(const sofa::core::MechanicalParams* mparams, - sofa::core::MultiMatrixDerivId c = sofa::core::MatrixDerivId::constraintJacobian(), SReal time = 0.0) + sofa::core::MultiMatrixDerivId c = sofa::core::vec_id::write_access::constraintJacobian, SReal time = 0.0) : MechanicalVisitor(mparams), cId(c), t(time) { #ifdef SOFA_DUMP_VISITOR_INFO @@ -53,4 +53,4 @@ class SOFA_SIMULATION_CORE_API MechanicalProjectJacobianMatrixVisitor : public M return true; } }; -} \ No newline at end of file +} diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectPositionAndVelocityVisitor.h b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectPositionAndVelocityVisitor.h index f930e3d14d9..c0d394d6faf 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectPositionAndVelocityVisitor.h +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectPositionAndVelocityVisitor.h @@ -33,8 +33,8 @@ class SOFA_SIMULATION_CORE_API MechanicalProjectPositionAndVelocityVisitor : pub sofa::core::MultiVecCoordId pos; sofa::core::MultiVecDerivId vel; MechanicalProjectPositionAndVelocityVisitor(const sofa::core::MechanicalParams* mparams , double time=0, - sofa::core::MultiVecCoordId x = sofa::core::VecCoordId::position(), - sofa::core::MultiVecDerivId v = sofa::core::VecDerivId::velocity()) + sofa::core::MultiVecCoordId x = sofa::core::vec_id::write_access::position, + sofa::core::MultiVecDerivId v = sofa::core::vec_id::write_access::velocity) : MechanicalVisitor(mparams) , t(time), pos(x), vel(v) { #ifdef SOFA_DUMP_VISITOR_INFO @@ -63,4 +63,4 @@ class SOFA_SIMULATION_CORE_API MechanicalProjectPositionAndVelocityVisitor : pub } #endif }; -} \ No newline at end of file +} diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectPositionVisitor.h b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectPositionVisitor.h index 2e52d845cd0..43b6e3c5484 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectPositionVisitor.h +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectPositionVisitor.h @@ -32,7 +32,7 @@ class SOFA_SIMULATION_CORE_API MechanicalProjectPositionVisitor : public Mechani SReal t; sofa::core::MultiVecCoordId pos; MechanicalProjectPositionVisitor(const sofa::core::MechanicalParams* mparams , SReal time=0, - sofa::core::MultiVecCoordId x = sofa::core::VecCoordId::position()) + sofa::core::MultiVecCoordId x = sofa::core::vec_id::write_access::position) : MechanicalVisitor(mparams) , t(time), pos(x) { #ifdef SOFA_DUMP_VISITOR_INFO @@ -60,4 +60,4 @@ class SOFA_SIMULATION_CORE_API MechanicalProjectPositionVisitor : public Mechani } #endif }; -} \ No newline at end of file +} diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectVelocityVisitor.h b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectVelocityVisitor.h index d7f034a099d..5b08d62b20e 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectVelocityVisitor.h +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalProjectVelocityVisitor.h @@ -32,7 +32,7 @@ class SOFA_SIMULATION_CORE_API MechanicalProjectVelocityVisitor : public Mechani SReal t; sofa::core::MultiVecDerivId vel; MechanicalProjectVelocityVisitor(const sofa::core::MechanicalParams* mparams , SReal time=0, - sofa::core::MultiVecDerivId v = sofa::core::VecDerivId::velocity()) + sofa::core::MultiVecDerivId v = sofa::core::vec_id::write_access::velocity) : MechanicalVisitor(mparams) , t(time),vel(v) { #ifdef SOFA_DUMP_VISITOR_INFO @@ -60,4 +60,4 @@ class SOFA_SIMULATION_CORE_API MechanicalProjectVelocityVisitor : public Mechani } #endif }; -} \ No newline at end of file +} diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalPropagateOnlyPositionVisitor.h b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalPropagateOnlyPositionVisitor.h index bbc5e3e1da7..719c59621be 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalPropagateOnlyPositionVisitor.h +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalPropagateOnlyPositionVisitor.h @@ -42,7 +42,7 @@ class SOFA_SIMULATION_CORE_API MechanicalPropagateOnlyPositionVisitor : public M sofa::core::MultiVecCoordId x; MechanicalPropagateOnlyPositionVisitor( const sofa::core::MechanicalParams* mparams, SReal time=0, - sofa::core::MultiVecCoordId x = sofa::core::VecCoordId::position()); + sofa::core::MultiVecCoordId x = sofa::core::vec_id::write_access::position); Result fwdMechanicalState(simulation::Node* /*node*/,sofa::core::behavior::BaseMechanicalState* mm) override; Result fwdMechanicalMapping(simulation::Node* /*node*/, sofa::core::BaseMapping* map) override; diff --git a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalSetPositionAndVelocityVisitor.h b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalSetPositionAndVelocityVisitor.h index 59cf80e6b12..ec27c10486d 100644 --- a/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalSetPositionAndVelocityVisitor.h +++ b/Sofa/framework/Simulation/Core/src/sofa/simulation/mechanicalvisitor/MechanicalSetPositionAndVelocityVisitor.h @@ -37,8 +37,8 @@ class SOFA_SIMULATION_CORE_API MechanicalSetPositionAndVelocityVisitor : public sofa::core::MultiVecDerivId v; MechanicalSetPositionAndVelocityVisitor(const sofa::core::MechanicalParams* mparams ,SReal time=0, - sofa::core::MultiVecCoordId x = sofa::core::VecCoordId::position(), - sofa::core::MultiVecDerivId v = sofa::core::VecDerivId::velocity()); + sofa::core::MultiVecCoordId x = sofa::core::vec_id::write_access::position, + sofa::core::MultiVecDerivId v = sofa::core::vec_id::write_access::velocity); Result fwdMechanicalState(simulation::Node* /*node*/,sofa::core::behavior::BaseMechanicalState* mm) override; @@ -61,4 +61,4 @@ class SOFA_SIMULATION_CORE_API MechanicalSetPositionAndVelocityVisitor : public #endif }; -} \ No newline at end of file +} diff --git a/applications/plugins/ArticulatedSystemPlugin/src/ArticulatedSystemPlugin/ArticulatedHierarchyBVHController.cpp b/applications/plugins/ArticulatedSystemPlugin/src/ArticulatedSystemPlugin/ArticulatedHierarchyBVHController.cpp index f735d6b58cb..a61e4d094e5 100644 --- a/applications/plugins/ArticulatedSystemPlugin/src/ArticulatedSystemPlugin/ArticulatedHierarchyBVHController.cpp +++ b/applications/plugins/ArticulatedSystemPlugin/src/ArticulatedSystemPlugin/ArticulatedHierarchyBVHController.cpp @@ -126,9 +126,9 @@ void ArticulatedHierarchyBVHController::applyController(void) if ((*it)->translation.getValue()) { const double diffMotions = (*it)->motion[frame+1] - (*it)->motion[frame]; - helper::WriteAccessor > x = *(*articulatedObjIt)->write(sofa::core::VecCoordId::position()); - this->getContext()->getMechanicalState()->vRealloc( sofa::core::MechanicalParams::defaultInstance(), core::VecCoordId::freePosition() ); // freePosition is not allocated by default - helper::WriteAccessor > xfree = *(*articulatedObjIt)->write(sofa::core::VecCoordId::freePosition()); + helper::WriteAccessor > x = *(*articulatedObjIt)->write(sofa::core::vec_id::write_access::position); + this->getContext()->getMechanicalState()->vRealloc( sofa::core::MechanicalParams::defaultInstance(), core::vec_id::write_access::freePosition ); // freePosition is not allocated by default + helper::WriteAccessor > xfree = *(*articulatedObjIt)->write(sofa::core::vec_id::write_access::freePosition); x[(*it)->articulationIndex.getValue()] = (*it)->motion[frame] + alpha*diffMotions; xfree[(*it)->articulationIndex.getValue()] = (*it)->motion[frame] + alpha*diffMotions; @@ -136,8 +136,8 @@ void ArticulatedHierarchyBVHController::applyController(void) else { const double diffMotions = (((*it)->motion[frame+1]/180.0)*3.14) - (((*it)->motion[frame]/180.0)*3.14); - helper::WriteAccessor > x = *(*articulatedObjIt)->write(sofa::core::VecCoordId::position()); - helper::WriteAccessor > xfree = *(*articulatedObjIt)->write(sofa::core::VecCoordId::freePosition()); + helper::WriteAccessor > x = *(*articulatedObjIt)->write(sofa::core::vec_id::write_access::position); + helper::WriteAccessor > xfree = *(*articulatedObjIt)->write(sofa::core::vec_id::write_access::freePosition); x[(*it)->articulationIndex.getValue()] = (((*it)->motion[frame]/180.0)*3.14) + alpha*diffMotions; xfree[(*it)->articulationIndex.getValue()] = (((*it)->motion[frame]/180.0)*3.14) + alpha*diffMotions; } diff --git a/applications/plugins/ArticulatedSystemPlugin/src/ArticulatedSystemPlugin/ArticulatedHierarchyController.cpp b/applications/plugins/ArticulatedSystemPlugin/src/ArticulatedSystemPlugin/ArticulatedHierarchyController.cpp index 89f8830e987..d74e81b80dd 100644 --- a/applications/plugins/ArticulatedSystemPlugin/src/ArticulatedSystemPlugin/ArticulatedHierarchyController.cpp +++ b/applications/plugins/ArticulatedSystemPlugin/src/ArticulatedSystemPlugin/ArticulatedHierarchyController.cpp @@ -380,8 +380,8 @@ void ArticulatedHierarchyController::applyController(void) // while (articulatedObjIt != articulatedObjItEnd) { - helper::WriteAccessor > x = *(*articulatedObjIt)->write(sofa::core::VecCoordId::position()); - helper::WriteAccessor > xfree = *(*articulatedObjIt)->write(sofa::core::VecCoordId::freePosition()); + helper::WriteAccessor > x = *(*articulatedObjIt)->write(sofa::core::vec_id::write_access::position); + helper::WriteAccessor > xfree = *(*articulatedObjIt)->write(sofa::core::vec_id::write_access::freePosition); x[(*it)->articulationIndex.getValue()].x() += signFactor * distributedAngleDelta; xfree[(*it)->articulationIndex.getValue()].x() += signFactor * distributedAngleDelta; ++articulatedObjIt; diff --git a/applications/plugins/ArticulatedSystemPlugin/src/ArticulatedSystemPlugin/ArticulatedSystemMapping.inl b/applications/plugins/ArticulatedSystemPlugin/src/ArticulatedSystemPlugin/ArticulatedSystemMapping.inl index 548e028a9fd..b9aade89d4b 100644 --- a/applications/plugins/ArticulatedSystemPlugin/src/ArticulatedSystemPlugin/ArticulatedSystemMapping.inl +++ b/applications/plugins/ArticulatedSystemPlugin/src/ArticulatedSystemPlugin/ArticulatedSystemMapping.inl @@ -70,7 +70,7 @@ void ArticulatedSystemMapping::init() m_fromModel = this->getFromModels1()[0]; m_toModel = this->getToModels()[0]; - const InVecCoord& xfrom = m_fromModel->read(core::ConstVecCoordId::position())->getValue(); + const InVecCoord& xfrom = m_fromModel->read(core::vec_id::read_access::position)->getValue(); ArticulationPos.clear(); ArticulationAxis.clear(); @@ -92,10 +92,10 @@ void ArticulatedSystemMapping::init() CoordinateBuf[c].x() = 0.0; } - helper::WriteAccessor > xtoData = *m_toModel->write(core::VecCoordId::position()); + helper::WriteAccessor > xtoData = *m_toModel->write(core::vec_id::write_access::position); apply(xtoData.wref(), xfrom, - m_fromRootModel == nullptr ? nullptr : &m_fromRootModel->read(core::ConstVecCoordId::position())->getValue()); + m_fromRootModel == nullptr ? nullptr : &m_fromRootModel->read(core::vec_id::read_access::position)->getValue()); Inherit::init(); } @@ -139,7 +139,7 @@ void ArticulatedSystemMapping::bwdInit() type::vector< sofa::component::container::ArticulationCenter* >::const_iterator ac = articulationCenters.begin(); const type::vector< sofa::component::container::ArticulationCenter* >::const_iterator acEnd = articulationCenters.end(); - const InVecCoord& xfrom = m_fromModel->read(core::ConstVecCoordId::position())->getValue(); + const InVecCoord& xfrom = m_fromModel->read(core::vec_id::read_access::position)->getValue(); if (articulationCenters.size() > xfrom.size()) { msg_error() << "ArticulationCenters '" << ahc->name << "' size: " << articulationCenters.size() << " is bigger than the size of input model '" << m_fromModel->name << "' position vector: " << xfrom.size(); @@ -172,7 +172,7 @@ void ArticulatedSystemMapping::apply( typename Out::VecCoord if (d_componentState.getValue() == sofa::core::objectmodel::ComponentState::Invalid) return; - const Data< OutVecCoord > &xtoData = *m_toModel->read(core::VecCoordId::position()); + const Data< OutVecCoord > &xtoData = *m_toModel->read(core::vec_id::write_access::position); out.resize(xtoData.getValue().size()); // Copy the root position if a rigid root model is present @@ -357,7 +357,7 @@ void ArticulatedSystemMapping::applyJ( typename Out::VecDeri if (d_componentState.getValue() == sofa::core::objectmodel::ComponentState::Invalid) return; - Data* xtoData = m_toModel->write(core::VecCoordId::position()); + Data* xtoData = m_toModel->write(core::vec_id::write_access::position); const OutVecCoord& xto = xtoData->getValue(); @@ -417,7 +417,7 @@ void ArticulatedSystemMapping::applyJT( typename In::VecDeri if (d_componentState.getValue() == sofa::core::objectmodel::ComponentState::Invalid) return; - const OutVecCoord& xto = m_toModel->read(core::VecCoordId::position())->getValue(); + const OutVecCoord& xto = m_toModel->read(core::vec_id::write_access::position)->getValue(); OutVecDeriv fObjects6DBuf = in; InVecDeriv OutBuf = out; @@ -475,7 +475,7 @@ void ArticulatedSystemMapping::applyJT( InMatrixDeriv& out, if (d_componentState.getValue() == sofa::core::objectmodel::ComponentState::Invalid) return; - const OutVecCoord& xto = m_toModel->read(core::ConstVecCoordId::position())->getValue(); + const OutVecCoord& xto = m_toModel->read(core::vec_id::read_access::position)->getValue(); typename OutMatrixDeriv::RowConstIterator rowItEnd = in.end(); @@ -535,7 +535,7 @@ void ArticulatedSystemMapping::applyJT( InMatrixDeriv& out, if(m_fromRootModel && outRoot) { - const OutVecCoord& xfromRoot = m_fromRootModel->read(core::ConstVecCoordId::position())->getValue(); + const OutVecCoord& xfromRoot = m_fromRootModel->read(core::vec_id::read_access::position)->getValue(); sofa::type::Vec<3,OutReal> posRoot = xfromRoot[d_indexFromRoot.getValue()].getCenter(); OutDeriv T; diff --git a/applications/plugins/CollisionOBBCapsule/src/CollisionOBBCapsule/geometry/CapsuleModel.inl b/applications/plugins/CollisionOBBCapsule/src/CollisionOBBCapsule/geometry/CapsuleModel.inl index 8656646dd0d..2d279b45b8e 100644 --- a/applications/plugins/CollisionOBBCapsule/src/CollisionOBBCapsule/geometry/CapsuleModel.inl +++ b/applications/plugins/CollisionOBBCapsule/src/CollisionOBBCapsule/geometry/CapsuleModel.inl @@ -208,7 +208,7 @@ typename CapsuleCollisionModel::Real CapsuleCollisionModel template inline const typename CapsuleCollisionModel::Coord & CapsuleCollisionModel::point(Index i)const{ - return DataTypes::getCPos(this->_mstate->read(core::ConstVecCoordId::position())->getValue()[i]); + return DataTypes::getCPos(this->_mstate->read(core::vec_id::read_access::position)->getValue()[i]); } template @@ -261,8 +261,8 @@ typename TCapsule::Real TCapsule::radius() const template -typename CapsuleCollisionModel::Deriv CapsuleCollisionModel::velocity(Index index) const { return ((_mstate->read(core::ConstVecDerivId::velocity())->getValue())[_capsule_points[index].first] + - (_mstate->read(core::ConstVecDerivId::velocity())->getValue())[_capsule_points[index].second])/2.0;} +typename CapsuleCollisionModel::Deriv CapsuleCollisionModel::velocity(Index index) const { return ((_mstate->read(core::vec_id::read_access::velocity)->getValue())[_capsule_points[index].first] + + (_mstate->read(core::vec_id::read_access::velocity)->getValue())[_capsule_points[index].second])/2.0;} template typename TCapsule::Deriv TCapsule::v() const {return this->model->velocity(this->index);} diff --git a/applications/plugins/CollisionOBBCapsule/src/CollisionOBBCapsule/geometry/OBBModel.inl b/applications/plugins/CollisionOBBCapsule/src/CollisionOBBCapsule/geometry/OBBModel.inl index 484183a6900..e5d3dd76a6b 100644 --- a/applications/plugins/CollisionOBBCapsule/src/CollisionOBBCapsule/geometry/OBBModel.inl +++ b/applications/plugins/CollisionOBBCapsule/src/CollisionOBBCapsule/geometry/OBBModel.inl @@ -250,7 +250,7 @@ inline typename TOBB::Coord TOBB::localCoordinates(const C template inline const typename OBBCollisionModel::Coord & OBBCollisionModel::lvelocity(sofa::Index index)const{ - return (_mstate->read(core::ConstVecDerivId::velocity())->getValue())[index].getLinear(); + return (_mstate->read(core::vec_id::read_access::velocity)->getValue())[index].getLinear(); } template @@ -362,12 +362,12 @@ inline void OBBCollisionModel::vertices(sofa::Index index,std::vector template inline const typename OBBCollisionModel::Coord & OBBCollisionModel::center(sofa::Index index)const{ - return _mstate->read(core::ConstVecCoordId::position())->getValue()[index].getCenter(); + return _mstate->read(core::vec_id::read_access::position)->getValue()[index].getCenter(); } template inline const typename OBBCollisionModel::Quaternion & OBBCollisionModel::orientation(sofa::Index index)const{ - return _mstate->read(core::ConstVecCoordId::position())->getValue()[index].getOrientation(); + return _mstate->read(core::vec_id::read_access::position)->getValue()[index].getOrientation(); } template diff --git a/applications/plugins/CollisionOBBCapsule/src/CollisionOBBCapsule/geometry/RigidCapsuleModel.inl b/applications/plugins/CollisionOBBCapsule/src/CollisionOBBCapsule/geometry/RigidCapsuleModel.inl index 6eb10f610e2..380ff7af2db 100644 --- a/applications/plugins/CollisionOBBCapsule/src/CollisionOBBCapsule/geometry/RigidCapsuleModel.inl +++ b/applications/plugins/CollisionOBBCapsule/src/CollisionOBBCapsule/geometry/RigidCapsuleModel.inl @@ -190,7 +190,7 @@ typename CapsuleCollisionModel >::Rea template const typename CapsuleCollisionModel >::Coord & CapsuleCollisionModel >::center(sofa::Index i)const{ - return DataTypes::getCPos((_mstate->read(core::ConstVecCoordId::position())->getValue())[i]); + return DataTypes::getCPos((_mstate->read(core::vec_id::read_access::position)->getValue())[i]); } template @@ -237,7 +237,7 @@ typename TCapsule >::Real TCapsule const typename CapsuleCollisionModel >::Coord & CapsuleCollisionModel >::velocity(sofa::Index index) const { - return DataTypes::getDPos(((_mstate->read(core::ConstVecDerivId::velocity())->getValue()))[index]); + return DataTypes::getDPos(((_mstate->read(core::vec_id::read_access::velocity)->getValue()))[index]); } @@ -246,7 +246,7 @@ const typename TCapsule >::Coord & TC template const sofa::type::Quat CapsuleCollisionModel >::orientation(sofa::Index index)const{ - return _mstate->read(core::ConstVecCoordId::position())->getValue()[index].getOrientation(); + return _mstate->read(core::vec_id::read_access::position)->getValue()[index].getOrientation(); } template diff --git a/applications/plugins/SofaCUDA/sofa/gpu/cuda/CudaHexahedronTLEDForceField.cpp b/applications/plugins/SofaCUDA/sofa/gpu/cuda/CudaHexahedronTLEDForceField.cpp index 5f44824cb79..c7e2f8763e1 100644 --- a/applications/plugins/SofaCUDA/sofa/gpu/cuda/CudaHexahedronTLEDForceField.cpp +++ b/applications/plugins/SofaCUDA/sofa/gpu/cuda/CudaHexahedronTLEDForceField.cpp @@ -224,7 +224,7 @@ void CudaHexahedronTLEDForceField::reinit() */ msg_info() << "CudaHexahedronTLEDForceField: precomputations..."; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); nelems.clear(); // Shape function natural derivatives DhDr @@ -465,7 +465,7 @@ void CudaHexahedronTLEDForceField::addForce (const sofa::core::MechanicalParams* const VecCoord& x = dataX.getValue() ; // Gets initial positions (allow to compute displacements by doing the difference between initial and current positions) - const VecCoord& x0 = mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x0 = mstate->read(core::vec_id::read_access::restPosition)->getValue(); f.resize(x.size()); CudaHexahedronTLEDForceField3f_addForce( diff --git a/applications/plugins/SofaCUDA/sofa/gpu/cuda/CudaTetrahedronTLEDForceField.cpp b/applications/plugins/SofaCUDA/sofa/gpu/cuda/CudaTetrahedronTLEDForceField.cpp index 98bb227321c..ea7c34b88e4 100644 --- a/applications/plugins/SofaCUDA/sofa/gpu/cuda/CudaTetrahedronTLEDForceField.cpp +++ b/applications/plugins/SofaCUDA/sofa/gpu/cuda/CudaTetrahedronTLEDForceField.cpp @@ -273,7 +273,7 @@ void CudaTetrahedronTLEDForceField::reinit() */ msg_info() << "CudaTetrahedronTLEDForceField: precomputations..."; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); nelems.clear(); // Shape function natural derivatives DhDr @@ -471,7 +471,7 @@ void CudaTetrahedronTLEDForceField::addForce (const sofa::core::MechanicalParams const VecCoord& x = dataX.getValue() ; // Gets initial positions (allow to compute displacements by doing the difference between initial and current positions) - const VecCoord& x0 = mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& x0 = mstate->read(core::vec_id::read_access::restPosition)->getValue(); f.resize(x.size()); CudaTetrahedronTLEDForceField3f_addForce(m_device_nodesPerElement, diff --git a/applications/plugins/SofaCUDA/sofa/gpu/cuda/CudaVisualModel.inl b/applications/plugins/SofaCUDA/sofa/gpu/cuda/CudaVisualModel.inl index d14ed36c97b..c5c07b91905 100644 --- a/applications/plugins/SofaCUDA/sofa/gpu/cuda/CudaVisualModel.inl +++ b/applications/plugins/SofaCUDA/sofa/gpu/cuda/CudaVisualModel.inl @@ -255,7 +255,7 @@ template void CudaVisualModel< TDataTypes >::updateNormals() { if (!topology || !state || !state->getSize()) return; - const VecCoord& x = state->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = state->read(core::vec_id::read_access::position)->getValue(); fnormals.resize(nbElement); vnormals.resize(x.size()); if (triangles.size() > 0) @@ -370,7 +370,7 @@ void CudaVisualModel< TDataTypes >::internalDraw(const core::visual::VisualParam //TODO: Const ? Read-Only ? //VecCoord& x = *state->getX(); - Data* d_x = state->write(core::VecCoordId::position()); + Data* d_x = state->write(core::vec_id::write_access::position); VecCoord& x = *d_x->beginEdit(); bool vbo = useVBO.getValue(); @@ -465,7 +465,7 @@ void CudaVisualModel< TDataTypes >::computeBBox(const core::ExecParams* params, if (!state) return; - const VecCoord& x = state->write(core::VecCoordId::position())->getValue(); + const VecCoord& x = state->write(core::vec_id::write_access::position)->getValue(); SReal minBBox[3] = {std::numeric_limits::max(),std::numeric_limits::max(),std::numeric_limits::max()}; SReal maxBBox[3] = {-std::numeric_limits::max(),-std::numeric_limits::max(),-std::numeric_limits::max()}; diff --git a/applications/plugins/SofaCUDA/src/SofaCUDA/component/collision/geometry/CudaPointModel.cpp b/applications/plugins/SofaCUDA/src/SofaCUDA/component/collision/geometry/CudaPointModel.cpp index 9e71d52837f..a906ab1025d 100644 --- a/applications/plugins/SofaCUDA/src/SofaCUDA/component/collision/geometry/CudaPointModel.cpp +++ b/applications/plugins/SofaCUDA/src/SofaCUDA/component/collision/geometry/CudaPointModel.cpp @@ -67,7 +67,7 @@ void CudaPointCollisionModel::draw(const core::visual::VisualParams* , Index ind const int gsize = groupSize.getValue(); CudaPoint t(this,index); glBegin(GL_POINTS); - const VecCoord& x = mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = mstate->read(core::vec_id::read_access::position)->getValue(); const auto i0 = index*gsize; const Size n = (index==size-1) ? x.size()-i0 : Size(gsize); for (Size p=0; presize(size); if (!empty()) { - const VecCoord& x = mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = mstate->read(core::vec_id::read_access::position)->getValue(); for (Size i=0; i::draw(const core::visual::VisualP { #if SOFACUDA_HAVE_SOFA_GL == 1 if (!((this->mstate1 == this->mstate2)? vparams->displayFlags().getShowForceFields():vparams->displayFlags().getShowInteractionForceFields())) return; - const VecCoord& p1 = this->mstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& p2 = this->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p1 = this->mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& p2 = this->mstate2->read(core::vec_id::read_access::position)->getValue(); glDisable(GL_LIGHTING); glBegin(GL_LINES); diff --git a/applications/plugins/SofaCUDA/src/SofaCUDA/component/constraint/projective/CudaFixedTranslationProjectiveConstraint.cpp b/applications/plugins/SofaCUDA/src/SofaCUDA/component/constraint/projective/CudaFixedTranslationProjectiveConstraint.cpp index aa7d3683bd5..dfab3e76f43 100644 --- a/applications/plugins/SofaCUDA/src/SofaCUDA/component/constraint/projective/CudaFixedTranslationProjectiveConstraint.cpp +++ b/applications/plugins/SofaCUDA/src/SofaCUDA/component/constraint/projective/CudaFixedTranslationProjectiveConstraint.cpp @@ -46,7 +46,7 @@ void component::constraint::projective::FixedTranslationProjectiveConstraintdisplayFlags().getShowBehaviorModels()) return; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); glDisable(GL_LIGHTING); glPointSize(10); glColor4f(1, 0.5, 0.5, 1); @@ -76,7 +76,7 @@ void component::constraint::projective::FixedTranslationProjectiveConstraintdisplayFlags().getShowBehaviorModels()) return; - const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); glDisable(GL_LIGHTING); glPointSize(10); glColor4f(1, 0.5, 0.5, 1); diff --git a/applications/plugins/SofaCUDA/src/SofaCUDA/component/mapping/linear/CudaBarycentricMappingRigid.cpp b/applications/plugins/SofaCUDA/src/SofaCUDA/component/mapping/linear/CudaBarycentricMappingRigid.cpp index 76963ae6bc3..2dda9260a51 100644 --- a/applications/plugins/SofaCUDA/src/SofaCUDA/component/mapping/linear/CudaBarycentricMappingRigid.cpp +++ b/applications/plugins/SofaCUDA/src/SofaCUDA/component/mapping/linear/CudaBarycentricMappingRigid.cpp @@ -68,7 +68,7 @@ void BarycentricMapperHexahedronSetTopology InMechanicalStateT; InMechanicalStateT* inState; this->m_fromTopology->getContext()->get(inState); - const auto& inRestPos = (inState->read(core::ConstVecCoordId::restPosition())->getValue()); + const auto& inRestPos = (inState->read(core::vec_id::read_access::restPosition)->getValue()); for ( std::list::const_iterator changeIt = itBegin; changeIt != itEnd; ++changeIt ) diff --git a/applications/plugins/SofaCUDA/src/SofaCUDA/component/mass/CudaDiagonalMass.inl b/applications/plugins/SofaCUDA/src/SofaCUDA/component/mass/CudaDiagonalMass.inl index 8de1702417c..15de95a0252 100644 --- a/applications/plugins/SofaCUDA/src/SofaCUDA/component/mass/CudaDiagonalMass.inl +++ b/applications/plugins/SofaCUDA/src/SofaCUDA/component/mass/CudaDiagonalMass.inl @@ -146,7 +146,7 @@ void DiagonalMass::addForce(const core::MechanicalParams* /*mpar // template <> // bool DiagonalMass::addBBox(double* minBBox, double* maxBBox) { -// const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); +// const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); // //if (!x.isHostValid()) return false; // Do not recompute bounding box if it requires to transfer data from device // for (unsigned int i=0; i::draw(const core::visual::VisualPa #if SOFACUDA_HAVE_SOFA_GL == 1 if (!vparams->displayFlags().getShowBehaviorModels()) return; - const VecCoord& x = mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = mstate->read(core::vec_id::read_access::position)->getValue(); type::Vec3d len; // The moment of inertia of a box is: @@ -286,7 +286,7 @@ void UniformMass::addForce(const core::MechanicalParams* /*mpara // template <> // bool UniformMass::addBBox(SReal* minBBox, SReal* maxBBox) // { -// const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); +// const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); // //if (!x.isHostValid()) return false; // Do not recompute bounding box if it requires to transfer data from device // for (unsigned int i=0; i::addForce(const core::MechanicalParams* /*mpar // template <> // bool UniformMass::addBBox(double* minBBox, double* maxBBox) // { -// const VecCoord& x = this->mstate->read(core::ConstVecCoordId::position())->getValue(); +// const VecCoord& x = this->mstate->read(core::vec_id::read_access::position)->getValue(); // //if (!x.isHostValid()) return false; // Do not recompute bounding box if it requires to transfer data from device // for (unsigned int i=0; i::draw(const core::visual::VisualPa { if (!vparams->displayFlags().getShowBehaviorModels()) return; - const VecCoord& x = mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = mstate->read(core::vec_id::read_access::position)->getValue(); type::Vec3d len; // The moment of inertia of a box is: diff --git a/applications/plugins/SofaCUDA/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaHexahedronFEMForceField.inl b/applications/plugins/SofaCUDA/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaHexahedronFEMForceField.inl index f6f491b2fc3..c36d357b973 100644 --- a/applications/plugins/SofaCUDA/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaHexahedronFEMForceField.inl +++ b/applications/plugins/SofaCUDA/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaHexahedronFEMForceField.inl @@ -79,7 +79,7 @@ void HexahedronFEMForceFieldInternalData< gpu::cuda::CudaVectorTypesdata; m->setMethod(m->LARGE); - const VecCoord& p = m->mstate->read(sofa::core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& p = m->mstate->read(sofa::core::vec_id::read_access::restPosition)->getValue(); m->d_initialPoints.setValue(p); m->_materialsStiffnesses.resize( m->getIndexedElements()->size() ); diff --git a/applications/plugins/SofaCUDA/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaTetrahedronFEMForceField.inl b/applications/plugins/SofaCUDA/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaTetrahedronFEMForceField.inl index c708fa3e4a0..b84ec71db49 100644 --- a/applications/plugins/SofaCUDA/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaTetrahedronFEMForceField.inl +++ b/applications/plugins/SofaCUDA/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaTetrahedronFEMForceField.inl @@ -145,7 +145,7 @@ void TetrahedronFEMForceFieldInternalData< gpu::cuda::CudaVectorTypes_indexedElements; - const VecCoord& p = m->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& p = m->mstate->read(core::vec_id::read_access::restPosition)->getValue(); m->d_initialPoints.setValue(p); m->rotations.resize( m->_indexedElements->size() ); diff --git a/applications/plugins/SofaCUDA/src/SofaCUDA/component/solidmechanics/spring/CudaSpringForceField.inl b/applications/plugins/SofaCUDA/src/SofaCUDA/component/solidmechanics/spring/CudaSpringForceField.inl index 45e03423ad3..99c4b4bf26d 100644 --- a/applications/plugins/SofaCUDA/src/SofaCUDA/component/solidmechanics/spring/CudaSpringForceField.inl +++ b/applications/plugins/SofaCUDA/src/SofaCUDA/component/solidmechanics/spring/CudaSpringForceField.inl @@ -297,7 +297,7 @@ void SpringForceFieldInternalData< gpu::cuda::CudaVectorTypesmstate1->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = m->mstate1->read(core::vec_id::read_access::position)->getValue(); df.resize(x.size()); int d = data.springs1.vertex0; if (data.springs1.nbSpringPerVertex > 0) @@ -314,8 +314,8 @@ void SpringForceFieldInternalData< gpu::cuda::CudaVectorTypesmstate1->read(core::ConstVecCoordId::position())->getValue(); - const VecCoord& x2 = m->mstate2->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x1 = m->mstate1->read(core::vec_id::read_access::position)->getValue(); + const VecCoord& x2 = m->mstate2->read(core::vec_id::read_access::position)->getValue(); df1.resize(x1.size()); df2.resize(x2.size()); int d1 = data.springs1.vertex0; diff --git a/applications/plugins/SofaCUDA/src/SofaCUDA/component/statecontainer/CudaMechanicalObject.inl b/applications/plugins/SofaCUDA/src/SofaCUDA/component/statecontainer/CudaMechanicalObject.inl index ddb03b7d716..de1d4428dca 100644 --- a/applications/plugins/SofaCUDA/src/SofaCUDA/component/statecontainer/CudaMechanicalObject.inl +++ b/applications/plugins/SofaCUDA/src/SofaCUDA/component/statecontainer/CudaMechanicalObject.inl @@ -1437,7 +1437,7 @@ double MechanicalObjectInternalData< gpu::cuda::CudaVectorTypes void MechanicalObjectInternalData< gpu::cuda::CudaVectorTypes >::resetForce(Main* m) { - Data* d_f = m->write(core::VecDerivId::force()); + Data* d_f = m->write(core::vec_id::write_access::force); VecDeriv& f = *d_f->beginEdit(); if (f.size() > 0) Kernels::vClear(f.size(), f.deviceWrite()); @@ -2127,7 +2127,7 @@ double MechanicalObjectInternalData< gpu::cuda::CudaRigidTypes >::vDot( template void MechanicalObjectInternalData< gpu::cuda::CudaRigidTypes >::resetForce(Main* m) { - Data* d_f = m->write(core::VecDerivId::force()); + Data* d_f = m->write(core::vec_id::write_access::force); VecDeriv& f = *d_f->beginEdit(); if (f.size() == 0) return; @@ -2359,7 +2359,7 @@ void MechanicalObjectInternalData< gpu::cuda::CudaRigidTypes >::addFrom // I know using macros is bad design but this is the only way not to repeat the code for all CUDA types #define CudaMechanicalObject_ImplMethods(T) \ template<> void MechanicalObject< T >::accumulateForce(const core::ExecParams* params, core::VecDerivId fid) \ -{ if( fid==core::VecDerivId::force() ) data.accumulateForce(this); else core::behavior::BaseMechanicalState::accumulateForce(params,fid);} \ +{ if( fid==core::vec_id::write_access::force ) data.accumulateForce(this); else core::behavior::BaseMechanicalState::accumulateForce(params,fid);} \ template<> void MechanicalObject< T >::vOp(const core::ExecParams* /* params */, core::VecId v, core::ConstVecId a, core::ConstVecId b, SReal f) \ { data.vOp(this, v, a, b, f); } \ template<> void MechanicalObject< T >::vMultiOp(const core::ExecParams* params, const VMultiOp& ops) \ @@ -2367,7 +2367,7 @@ template<> void MechanicalObject< T >::vMultiOp(const core::ExecParams* params, template<> SReal MechanicalObject< T >::vDot(const core::ExecParams* /* params */, core::ConstVecId a, core::ConstVecId b) \ { return data.vDot(this, a, b); } \ template<> void MechanicalObject< T >::resetForce(const core::ExecParams* params, core::VecDerivId fid) \ -{ if( fid==core::VecDerivId::force() ) data.resetForce(this); else core::behavior::BaseMechanicalState::resetForce(params,fid); } \ +{ if( fid==core::vec_id::write_access::force ) data.resetForce(this); else core::behavior::BaseMechanicalState::resetForce(params,fid); } \ template<> void MechanicalObject< T >::copyToBaseVector(linearalgebra::BaseVector * dest, core::ConstVecId src, unsigned int &offset) \ { if (CudaBaseVectorType * vec = dynamic_cast *>(dest)) data.copyToCudaBaseVector(this, vec,src,offset); \ else data.copyToBaseVector(this, dest,src,offset); } \ diff --git a/applications/plugins/SofaDistanceGrid/src/SofaDistanceGrid/components/collision/DistanceGridCollisionModel.cpp b/applications/plugins/SofaDistanceGrid/src/SofaDistanceGrid/components/collision/DistanceGridCollisionModel.cpp index 3b73eba6394..f689ec8a32c 100644 --- a/applications/plugins/SofaDistanceGrid/src/SofaDistanceGrid/components/collision/DistanceGridCollisionModel.cpp +++ b/applications/plugins/SofaDistanceGrid/src/SofaDistanceGrid/components/collision/DistanceGridCollisionModel.cpp @@ -184,7 +184,7 @@ void RigidDistanceGridCollisionModel::updateState() { if (rigid) { - const RigidTypes::Coord& xform = (rigid->read(core::ConstVecCoordId::position())->getValue())[i]; + const RigidTypes::Coord& xform = (rigid->read(core::vec_id::read_access::position)->getValue())[i]; elems[i].translation = xform.getCenter(); xform.getOrientation().toMatrix(elems[i].rotation); if (useInitRotation) @@ -625,7 +625,7 @@ void FFDDistanceGridCollisionModel::updateGrid() DeformedCube& cube = getDeformCube( index ); const sofa::type::vector& cubeCorners = ffdMesh->getHexahedra(); - const Vec3Types::VecCoord& x = ffd->read(core::ConstVecCoordId::position())->getValue(); + const Vec3Types::VecCoord& x = ffd->read(core::vec_id::read_access::position)->getValue(); { int e = cube.elem; DistanceGrid::Coord center; diff --git a/applications/plugins/SofaDistanceGrid/src/SofaDistanceGrid/components/collision/DistanceGridCollisionModel.h b/applications/plugins/SofaDistanceGrid/src/SofaDistanceGrid/components/collision/DistanceGridCollisionModel.h index 3cc9b8a671f..aeda71fdfdd 100644 --- a/applications/plugins/SofaDistanceGrid/src/SofaDistanceGrid/components/collision/DistanceGridCollisionModel.h +++ b/applications/plugins/SofaDistanceGrid/src/SofaDistanceGrid/components/collision/DistanceGridCollisionModel.h @@ -567,7 +567,7 @@ class response::mapper::ContactMapper MCollisionModel* model = this->model; MMechanicalState* outmodel = this->outmodel.get(); { - helper::WriteAccessor > xData = *outmodel->write(core::VecCoordId::position()); + helper::WriteAccessor > xData = *outmodel->write(core::vec_id::write_access::position); Coord& x = xData.wref()[i]; if (model->isTransformed(index)) @@ -575,8 +575,8 @@ class response::mapper::ContactMapper else x = P; } - helper::ReadAccessor > xData = *outmodel->read(core::ConstVecCoordId::position()); - helper::WriteAccessor > vData = *outmodel->write(core::VecDerivId::velocity()); + helper::ReadAccessor > xData = *outmodel->read(core::vec_id::read_access::position); + helper::WriteAccessor > vData = *outmodel->write(core::vec_id::write_access::velocity); const Coord& x = xData.ref()[i]; Deriv& v = vData.wref()[i]; v.clear(); diff --git a/applications/plugins/SofaDistanceGrid/src/SofaDistanceGrid/components/forcefield/DistanceGridForceField.inl b/applications/plugins/SofaDistanceGrid/src/SofaDistanceGrid/components/forcefield/DistanceGridForceField.inl index 0d977704549..0c544cd8453 100644 --- a/applications/plugins/SofaDistanceGrid/src/SofaDistanceGrid/components/forcefield/DistanceGridForceField.inl +++ b/applications/plugins/SofaDistanceGrid/src/SofaDistanceGrid/components/forcefield/DistanceGridForceField.inl @@ -82,7 +82,7 @@ void DistanceGridForceField::init() const core::topology::BaseMeshTopology::SeqTriangles& triangles = topology->getTriangles(); Real sumArea = 0; Real sumSArea = 0; - const VecCoord& p1 = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& p1 = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); pOnBorder.resize(p1.size(), false); for (unsigned int ti = 0; ti < triangles.size(); ++ti) { @@ -114,7 +114,7 @@ void DistanceGridForceField::init() { const core::topology::BaseMeshTopology::SeqTetrahedra& tetrahedra = topology->getTetrahedra(); Real sumVolume = 0; - const VecCoord& p1 = this->mstate->read(core::ConstVecCoordId::restPosition())->getValue(); + const VecCoord& p1 = this->mstate->read(core::vec_id::read_access::restPosition)->getValue(); for (unsigned int ti = 0; ti < tetrahedra.size(); ++ti) { const auto & t = tetrahedra[ti]; @@ -434,7 +434,7 @@ void DistanceGridForceField::drawDistanceGrid(const core::visual::Vis if (!grid) return; if (size == 0.0f) size = (float)drawSize.getValue(); - const VecCoord& p1 = this->mstate->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& p1 = this->mstate->read(core::vec_id::read_access::position)->getValue(); std::vector< type::Vec3 > pointsLineIn; std::vector< type::Vec3 > pointsLineOut; diff --git a/applications/plugins/VolumetricRendering/extensions/CUDA/src/VolumetricRendering/CUDA/CudaTetrahedralVisualModel.inl b/applications/plugins/VolumetricRendering/extensions/CUDA/src/VolumetricRendering/CUDA/CudaTetrahedralVisualModel.inl index f69adc0cf9b..40c138bc631 100644 --- a/applications/plugins/VolumetricRendering/extensions/CUDA/src/VolumetricRendering/CUDA/CudaTetrahedralVisualModel.inl +++ b/applications/plugins/VolumetricRendering/extensions/CUDA/src/VolumetricRendering/CUDA/CudaTetrahedralVisualModel.inl @@ -92,7 +92,7 @@ void OglTetrahedralModel< gpu::cuda::CudaVectorTypes >::dra #ifdef GL_LINES_ADJACENCY_EXT //TODO: Const ? Read-Only ? //VecCoord& x = *nodes->getX(); - Data* d_x = nodes->write(core::VecCoordId::position()); + Data* d_x = nodes->write(core::vec_id::write_access::position); VecCoord& x = *d_x->beginEdit(); bool vbo = useVBO.getValue(); @@ -139,7 +139,7 @@ bool OglTetrahedralModel< gpu::cuda::CudaVectorTypes >::add { const core::topology::BaseMeshTopology::SeqTetrahedra& vec = topo->getTetrahedra(); core::topology::BaseMeshTopology::SeqTetrahedra::const_iterator it; - const VecCoord& x = nodes->read(core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = nodes->read(core::vec_id::read_access::position)->getValue(); Coord v; for(it = vec.begin() ; it != vec.end() ; ++it)