Class MiCylinderSliceExtractIjk

java.lang.Object
com.openinventor.meshvizxlm.extractors.slice.MiCylinderSliceExtractIjk
All Implemented Interfaces:
MiBaseExtractor, MiExtractorIjk
Direct Known Subclasses:
MiCylinderSliceExtractHexahedronIjk

public abstract class MiCylinderSliceExtractIjk extends Object implements MiExtractorIjk
Cylinder slice extractor for structured volume meshes.

A cylinder slice is a surface mesh defined by the intersection of a cylinder of infinite length with the input mesh. The cylinder is defined by a point on its central axis, a vector representing the central axis direction and the radius.

Additional data sets can be mapped onto this extracted surface by calling the extractScalarSet(MiScalardSetIjk) or extractVec3Set(MiVec3dSetIjk) methods.

The following sample code shows how to extract a cylinder slice from a mesh:

 
 {
   MiCylinderSliceExtractIjk cylinderSliceExtract = MiCylinderSliceExtractIjk.getNewInstance(mesh);
   MeXSurfaceMeshUnstructured cylinderSlice = cylinderSliceExtract.extractSlice(center, radius, direction, null);
 }
 
 
  • Method Details

    • getNewInstance

      public static <T extends MiTopologyIjk, G extends MiGeometryHexahedronIjk> MiCylinderSliceExtractIjk getNewInstance(MiVolumeMeshVertexHexahedronIjk<T,G> mesh)
      Create an instance of cylinder slice extractor for a non indexed hexahedron volume mesh IJK.
      Parameters:
      mesh - the input mesh
      Returns:
      a cylinder slice extractor for a non indexed hexahedron volume mesh IJK.
    • extractSlice

      public abstract MeXSurfaceMeshUnstructured<MeXSurfaceCell,MeXSurfaceTopologyExplicitI<MeXSurfaceCell>,MeXGeometryI> extractSlice(SbVec3d center, double radius, SbVec3d direction, MiCellFilterIjk filter)
      Builds the topology and geometry of a cylinder slice intersecting the volume mesh.
      Parameters:
      center - a point located on the axis of the cylinder
      radius - the radius of the cylinder
      direction - a vector representing the axis of the cylinder
      filter - the cell filter
      Returns:
      an unstructured surface mesh representing the cylinder slice
    • extractScalarSet

      public abstract MeXScalardSetI extractScalarSet(MiScalardSetIjk scalarSet)
      Computes a PER_CELL scalar set on the extracted cylinder slice.

      Note: The argument i,j,k of the method MiScalardSetIjk.get(int, int, int) refers to the cell (i,j,k). Thus the binding of the input set must be PER_CELL. An UnsupportedOperationException is thrown otherwise.

      Parameters:
      scalarSet - the input scalar set defined on the volume mesh
      Returns:
      the output scalar set defined on the resulting cylinder slice mesh
    • extractVec3Set

      public abstract MeXVec3dSetI extractVec3Set(MiVec3dSetIjk vectorSet)
      Computes a vector set on the extracted cylinder slice.

      Note: The argument i,j,k of the method MiVec3dSetIjk.get(int, int, int) refers to the cell (i,j,k). Thus the binding of the input set must be PER_CELL. An UnsupportedOperationException is thrown otherwise.

      Parameters:
      vectorSet - the input vector set defined on the volume mesh
      Returns:
      the output vector set defined on the resulting cylinder slice mesh
    • getExtract

      Returns the result of the extraction as a mesh.
      Returns:
      result of the extraction as a mesh