VoxelGridLoader
Voxel loader based on RAW files.
Target: Sofa.Component.IO.Mesh
namespace: sofa::component::io::mesh
parents:
- VoxelLoader
Data
| Name | Description | Default value |
|---|---|---|
| name | object name | unnamed |
| printLog | if true, emits extra messages at runtime. | 0 |
| tags | list of the subsets the object belongs to | |
| bbox | this object bounding box | |
| componentState | The state of the component among (Dirty, Valid, Undefined, Loading, Invalid). | Undefined |
| listening | if true, handle the events, otherwise ignore the events | 0 |
| filename | Filename of the object | |
| position | Coordinates of the nodes loaded | |
| hexahedra | Hexahedra loaded | |
| voxelSize | Dimension of one voxel | 1 1 1 |
| resolution | Resolution of the voxel file | 0 0 0 |
| ROI | Region of interest (xmin, ymin, zmin, xmax, ymax, zmax) | 0 0 0 65535 65535 65535 |
| header | Header size in bytes | 0 |
| segmentationHeader | Header size in bytes | 0 |
| idxInRegularGrid | indices of the hexa in the grid. | |
| bgValue | Background values (to be ignored) | |
| dataValue | Active data values | |
| generateHexa | Interpret voxel as either hexa or points | 1 |
Links
| Name | Description | Destination type name |
|---|---|---|
| context | Graph Node containing this object (or BaseContext::getDefault() if no graph is used) | BaseContext |
| slaves | Sub-objects used internally by this object | BaseObject |
| master | nullptr for regular objects, or master object for which this object is one sub-objects | BaseObject |
Examples
VoxelGridLoader.scn
<Node>
<RequiredPlugin name="Sofa.Component.IO.Mesh"/> <!-- Needed to use components [VoxelGridLoader] -->
<RequiredPlugin name="Sofa.Component.LinearSolver.Iterative"/> <!-- Needed to use components [CGLinearSolver] -->
<RequiredPlugin name="Sofa.Component.ODESolver.Backward"/> <!-- Needed to use components [EulerImplicitSolver] -->
<RequiredPlugin name="Sofa.Component.StateContainer"/> <!-- Needed to use components [MechanicalObject] -->
<RequiredPlugin name="Sofa.Component.Topology.Container.Dynamic"/> <!-- Needed to use components [HexahedronSetGeometryAlgorithms HexahedronSetTopologyContainer] -->
<DefaultAnimationLoop/>
<EulerImplicitSolver rayleighStiffness="0.1" rayleighMass="0.1" />
<CGLinearSolver iterations="25" tolerance="1e-5" threshold="1e-5"/>
<Node>
<VoxelGridLoader name="gridloader" filename="textures/Test_64_64_4.raw" voxelSize="0.1 0.1 0.1" resolution="64 64 4" bgValue="0" />
<HexahedronSetTopologyContainer src="@gridloader" />
<HexahedronSetGeometryAlgorithms drawHexa="1"/>
<MechanicalObject showObject="1"/>
</Node>
</Node>
def createScene(root_node):
node = root_node.addChild('node')
node.addObject('RequiredPlugin', name="Sofa.Component.IO.Mesh")
node.addObject('RequiredPlugin', name="Sofa.Component.LinearSolver.Iterative")
node.addObject('RequiredPlugin', name="Sofa.Component.ODESolver.Backward")
node.addObject('RequiredPlugin', name="Sofa.Component.StateContainer")
node.addObject('RequiredPlugin', name="Sofa.Component.Topology.Container.Dynamic")
node.addObject('DefaultAnimationLoop', )
node.addObject('EulerImplicitSolver', rayleighStiffness="0.1", rayleighMass="0.1")
node.addObject('CGLinearSolver', iterations="25", tolerance="1e-5", threshold="1e-5")
node = node.addChild('node')
node.addObject('VoxelGridLoader', name="gridloader", filename="textures/Test_64_64_4.raw", voxelSize="0.1 0.1 0.1", resolution="64 64 4", bgValue="0")
node.addObject('HexahedronSetTopologyContainer', src="@gridloader")
node.addObject('HexahedronSetGeometryAlgorithms', drawHexa="1")
node.addObject('MechanicalObject', showObject="1")