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")