TutorialTopologySurfaceMesh
From SOFAWiki
Tutorial : Surface Mesh Topology
- Previous Tutorial: TutorialTopologyLinearMesh
- Next Tutorial: TutorialTopologyVolumeMesh
Contents |
Example Scene Using different surface meshes (static, dynamic and regular)
This example is distributed inexamples/Tutorials/Basic/TutorialTopologySurfaceDifferentMesh.scnwithin SofaSVN and SOFA distributions starting from 1.0 beta 4.
Dynamic mesh in green, static mesh in red and regular mesh in blue.
Graph
XML Description
<?xml version="1.0" ?> <!-- See https://wiki.sofa-framework.org/wiki/TutorialTopologySurfaceMesh --> <Node name="root" gravity="0 -9.81 1" dt="0.05" showBehaviorModels="1" showCollisionModels="0" showMappings="0" showForceFields="0" > <!-- Basic Components to perform the collision detection --> <DefaultPipeline name="DefaultCollisionPipeline" depth="6"/> <BruteForceDetection name="Detection"/> <MinProximityIntersection name="Proximity" alarmDistance="0.8" contactDistance="0.5"/> <DefaultContactManager name="Response"/> <DefaultCollisionGroupManager name="Group"/> <Node name="Cloth Static Mesh"> <MechanicalObject name="DOFs" template="Vec3d" translation="10 0 5" rotation="0 90 90" scale="10"/> <FixedConstraint name="Fixed dof" template="Vec3d" indices="0 1"/> <UniformMass name="Mass" template="Vec3d" mass="1" totalmass="50"/> <EulerImplicitSolver name="cg_odesolver" printLog="0"/> <CGLinearSolver name="linear solver" template="GraphScattered" iterations="40" tolerance="1e-09" threshold="1e-09"/> <MeshTopology name="Static Mesh" fileTopology="/home/epernod/projects/sofa-dev/trunk/Sofa/share/mesh/square3.msh"/> <MeshSpringForceField name="Springs" template="Vec3d"/> <TriangularFEMForceField name="FEM" template="Vec3d" method="large" poissonRatio="0.3" youngModulus="60"/> <TriangleModel name="models"/> <OglModel name="Visual" template="ExtVec3f" color="red"/> <IdentityMapping name="Mapping" template="Mapping<Vec3d,ExtVec3f>" object1=".." object2="Visual"/> </Node> <Node name="Cloth Regular Mesh"> <MechanicalObject name="DOFs" template="Vec3d" translation="0 0 -10"/> <FixedConstraint name="Fixed dof" template="Vec3d" indices="0 870"/> <UniformMass name="Mass" template="Vec3d" mass="1" totalmass="50"/> <EulerImplicitSolver name="cg_odesolver" printLog="0"/> <CGLinearSolver name="linear solver" template="GraphScattered" iterations="40" tolerance="1e-09" threshold="1e-09"/> <RegularGridTopology name="default38" n="30 1 30" min="0 0 -20" max="10 0 -30" p0="0 0 -1"/> <RegularGridSpringForceField template="Vec3d"/> <QuadBendingSprings template="Vec3d" name="Bend" stiffness="20" damping="0"/> <OglModel name="Visual" template="ExtVec3f" color="blue"/> <IdentityMapping name="Mapping" template="Mapping<Vec3d,ExtVec3f>" object1=".." object2="Visual"/> </Node> <Node name="Cloth Dynamic Mesh"> <MechanicalObject name="DOF" template="Vec3d" translation="10 0 20" rotation="0 90 90" scale="10"/> <FixedConstraint name="Fixed dof" template="Vec3d" indices="0 1"/> <UniformMass name="Mass" template="Vec3d" mass="1" totalmass="50"/> <EulerImplicitSolver name="cg_odesolver" printLog="0"/> <CGLinearSolver name="linear solver" template="GraphScattered" iterations="40" tolerance="1e-09" threshold="1e-09"/> <TriangleSetTopologyContainer name="Topology Container" fileTopology="/home/epernod/projects/sofa-dev/trunk/Sofa/share/mesh/square3.msh" /> <TriangleSetTopologyModifier name="Topology Modifier"/> <TriangleSetTopologyAlgorithms template="Vec3d" name="Topology Algorithms"/> <TriangleSetGeometryAlgorithms template="Vec3d" name="Geometry Algorithms"/> <TriangularBendingSprings name="FEM-Bend" template="Vec3d" stiffness="300" damping="1"/> <TriangularFEMForceField name="FEM" template="Vec3d" method="large" poissonRatio="0.3" youngModulus="60"/> <TriangleModel name="models"/> <OglModel name="Visual" template="ExtVec3f" color="green"/> <IdentityMapping name="Mapping" template="Mapping<Vec3d,ExtVec3f>" object1=".." object2="Visual"/> </Node> </Node>
Example Scene of two different dynamic surface mesh types (triangles and quads)
This example is distributed inexamples/Tutorials/Basic/TutorialTopologyDynamicSurfaceMesh.scnwithin SofaSVN and SOFA distributions starting from 1.0 beta 4.
Graph
XML Description
<?xml version="1.0" ?> <!-- See https://wiki.sofa-framework.org/wiki/TutorialTopologySurfaceMesh --> <Node name="root" gravity="0 -9.81 1" dt="0.05" showBehaviorModels="1" showCollisionModels="0" showMappings="0" showForceFields="0" showWireFrame="1"> <!-- Basic Components to perform the collision detection --> <DefaultPipeline name="DefaultCollisionPipeline" depth="6"/> <BruteForceDetection name="Detection"/> <MinProximityIntersection name="Proximity" alarmDistance="0.8" contactDistance="0.5"/> <DefaultContactManager name="Response"/> <DefaultCollisionGroupManager name="Group"/> <Node name="Triangles Mesh"> <MechanicalObject name="DOFs" template="Vec3d" translation="0 10 10" rotation="0 -90 180" scale="10"/> <FixedConstraint name="Fixed dof" template="Vec3d" indices="0 1"/> <UniformMass name="Mass" template="Vec3d" mass="1" totalmass="1"/> <EulerImplicitSolver name="cg_odesolver" printLog="0"/> <CGLinearSolver name="linear solver" template="GraphScattered" iterations="25" tolerance="1e-09" threshold="1e-09"/> <TriangleSetTopologyContainer name="Topology Container" fileTopology="mesh/square1.msh"/> <TriangleSetTopologyModifier name="Topology Modifier"/> <TriangleSetTopologyAlgorithms template="Vec3d" name="Topology Algorithms"/> <TriangleSetGeometryAlgorithms template="Vec3d" name="Geometry Algorithms"/> <TriangularBendingSprings name="FEM-Bend" template="Vec3d" stiffness="300" damping="1"/> <TriangularFEMForceField name="FEM" template="Vec3d" method="large" poissonRatio="0.3" youngModulus="60"/> <TriangleModel name="models"/> <OglModel name="Visual" template="ExtVec3f" color="green"/> <IdentityMapping name="Mapping" template="Mapping<Vec3d,ExtVec3f>" object1=".." object2="Visual"/> </Node> <Node name="Quads Mesh"> <MechanicalObject name="DOFs" template="Vec3d" rotation="0 90 0" scale="4"/> <FixedConstraint name="Fixed dof" template="Vec3d" indices="12 15"/> <UniformMass name="Mass" template="Vec3d" mass="1" totalmass="1"/> <EulerImplicitSolver name="cg_odesolver" printLog="0"/> <CGLinearSolver name="linear solver" template="GraphScattered" iterations="25" tolerance="1e-09" threshold="1e-09"/> <QuadSetTopologyContainer name="Container" fileTopology="mesh/nine_quads.msh"/> <QuadSetTopologyModifier name="Modifier"/> <QuadSetTopologyAlgorithms template="Vec3d" name="TopoAlgo"/> <QuadSetGeometryAlgorithms template="Vec3d" name="GeomAlgo"/> <QuadularBendingSprings template="Vec3d" name="FEM-Bend" stiffness="3000" damping="1"/> <Node name="Visu"> <OglModel template="ExtVec3f" name="Visual"/> <IdentityMapping template="Mapping<Vec3d,ExtVec3f>" name="default5" object1="../../DOFs" object2="Visual"/> </Node> <Node name="Triangles"> <TriangleSetTopologyContainer name="Container"/> <TriangleSetTopologyModifier name="Modifier"/> <TriangleSetTopologyAlgorithms template="Vec3d" name="TopoAlgo"/> <TriangleSetGeometryAlgorithms template="Vec3d" name="GeomAlgo"/> <Quad2TriangleTopologicalMapping name="default6" object1="../../Container" object2="Container"/> <TriangularFEMForceField template="Vec3d" name="FEM" method="large" poissonRatio="0.3" youngModulus="1000"/> <TriangularBendingSprings template="Vec3d" name="FEM-Bend" stiffness="3000" damping="1"/> <TriangleModel name="default7"/> </Node> </Node> </Node>
