Class SbExtrusionGenerator


  • public class SbExtrusionGenerator
    extends Inventor
    Factory that generates an extruded mesh from a polyline. This class generates an extruded shape from a simple or a complex polyline. The line is extruded between the 2 planes parallel that can be specified with a boundingBox or directly in camera space (see createFrom2DPoints() methods) The generated shape is closed and contains only triangles in CCW order.

    LIMITATIONS

    • Only vertices are handled in the generated shape, none of the normal, color or texCoord properties are taken into account.

    NOTES

    • In an orthographic view, the polyline is extruded along the view vector (normal to the camera plane), but in a perspective view the generated shape is a truncated cone with a larger base farther from the camera, due to the perspective transform.
    • Local space refers to the space in which the shape will be expressed.
    • Method Detail

      • createFrom2DPoints

        public static SoShape createFrom2DPoints​(java.util.Collection<SbVec2f> pointsInCam,
                                                 SbMatrix localToCam)
        Calls createFrom2DPoints(pointsInCam, localToCam, new com.openinventor.inventor.SbBox3f()).
      • createFrom2DPoints

        public static SoShape createFrom2DPoints​(java.util.Collection<SbVec2f> pointsInCam,
                                                 SoPath nodePath,
                                                 SbViewVolume volume)
        Calls createFrom2DPoints(pointsInCam, nodePath, volume, new com.openinventor.inventor.SbBox3f()).
      • createFrom2DPoints

        public static SoShape createFrom2DPoints​(java.util.Collection<SbVec2f> pointsInCam,
                                                 SbMatrix camToLocal,
                                                 float zMin)
        Calls createFrom2DPoints(pointsInCam, camToLocal, zMin, (float)1.0f).
      • createFrom3DPoints

        public static SoShape createFrom3DPoints​(java.util.Collection<SbVec3f> pointsInWorld,
                                                 SoPath nodePath,
                                                 SbViewVolume volume)
        Calls createFrom3DPoints(pointsInWorld, nodePath, volume, new com.openinventor.inventor.SbBox3f()).
      • createFrom2DPoints

        public static SoShape createFrom2DPoints​(java.util.Collection<SbVec2f> pointsInCam,
                                                 SbMatrix camToLocal,
                                                 float zMin,
                                                 float zMax)
        Create an extruded shape from points in camera space.

        Parameters:
        pointsInCam - Polyline in normalized screen space ([-1, 1]x[-1, 1]).

        camToLocal - Transform matrix from camera space to local space (modelViewProjInv matrix)

        zMin - Min extrusion plane, in camera space. By default, it's the camera's near clip plane.

        zMax - Max extrusion plane, in camera space. By default, it's the camera's far clip plane.

        Warning Return NULL if error occurred.

      • createFrom3DPoints

        public static SoShape createFrom3DPoints​(java.util.Collection<SbVec3f> pointsInWorld,
                                                 SoPath nodePath,
                                                 SbViewVolume volume,
                                                 SbBox3f bboxInLocal)
        Create an extruded shape from points in world space.

        Parameters:
        pointsInWorld - Polyline in world space.

        nodePath - Path from root to the node space in which the generated shape will be expressed. Generally, the separator which will contain the shape. If NULL, the shape will be expressed in world space.

        volume - View volume corresponding to the camera in which the points were taken.

        bboxInLocal - Bounding box that specifies limits of extruded shape, expressed in local space. If not specified, the shape will be extruded between the camera near and far planes.

        Warning Return NULL if error occurred.

      • createFrom2DPoints

        public static SoShape createFrom2DPoints​(java.util.Collection<SbVec2f> pointsInCam,
                                                 SoPath nodePath,
                                                 SbViewVolume volume,
                                                 SbBox3f bboxInLocal)
        Create an extruded shape from points in camera space.

        Parameters:
        pointsInCam - Polyline in normalized screen space ([-1, 1]x[-1, 1]).

        nodePath - Path from root to the node space in which the generated shape will be expressed. Generally, the separator which will contain the shape. If NULL, the shape will be expressed in world space.

        volume - View volume corresponding to the camera in which the points were taken.

        bboxInLocal - Bounding box that specifies limits of extruded shape, expressed in local space. If not specified, the shape will be extruded between the camera near and far planes.

        Warning Return NULL if error occurred.

      • createFrom2DPoints

        public static SoShape createFrom2DPoints​(java.util.Collection<SbVec2f> pointsInCam,
                                                 SbMatrix localToCam,
                                                 SbBox3f bboxInLocal)
        Create an extruded shape from points in camera space.

        Parameters:
        pointsInCam - Polyline in normalized screen space ([-1, 1]x[-1, 1]).

        localToCam - Transform matrix from local space to camera space (modelViewProj matrix)

        bboxInLocal - Bounding box that specifies limits of extruded shape, expressed in local space. If not specified, the shape will be extruded between the camera near and far planes.

        Warning Return NULL if error occurred.