Class PoAutoCubeAxis

  • All Implemented Interfaces:
    SafeDisposable

    public class PoAutoCubeAxis
    extends PoBaseAxis
    Class to build a set of axes on a parallelepiped relating to the view. This class builds a set of 3D axes displayed on some of the 12 edges of a parallelepiped. The choice of the edges depends on the view defined by the current camera (see SoCamera class). The graduations and the title of the axes are always legible whatever the view definition. The two points (start and end fields) define the diagonal of the parallelepiped and only the edges which are intersecting a visible face and an invisible face will be graduated. The visible and invisible faces depend on the view definition. The visible faces of the parallelepiped are the back faces.

                           1-----------2
           Y              /|  (2)     /|
           |            /  |        /  |
           |          /    | (5)  /    |   Vertices numerotation.
           |         6----------5      |
           ----- X   |     |    | (1)  |
          /          |(3)  0----|------3
         /           |    /     | (4) /
        /            |  /       |   /
       Z             |/ (0)     | /
                     7----------4
    
        Face 0 : 4 5 6 7 ==> edges : (4,5) (5,6) (6,7) (7,4)
        Face 1 : 2 3 4 5 ==> edges : (2,3) (3,4) (4,5) (5,2)
        Face 2 : 0 1 2 3 ==> edges : (0,1) (1,2) (2,3) (3,0)
        Face 3 : 0 1 6 7 ==> edges : (0,1) (1,6) (6,7) (7,0)
        Face 4 : 0 3 4 7 ==> edges : (0,3) (3,4) (4,7) (7,0)
        Face 5 : 1 2 5 6 ==> edges : (1,2) (2,5) (5,6) (6,1)
    

    The graduations of these axes are defined by the fields gradStart and gradEnd. However if these fields are equal, the fields start and end are used to define the graduation values. Furthermore, the fields gradStart and gradEnd are always ignored for axis type GENERALIZED.

    File format/default:

    PoAutoCubeAxis {

      start 0 0 0
      end 1 1 1
      gradStart 0 0 0
      gradEnd 0 0 0
      xTitle ""
      yTitle ""
      zTitle ""
      isGridLinesXVisible false
      isGridLinesYVisible false
      isGridLinesZVisible false
      isBackgroundFacesVisible false
      isIntersectingGradsVisible false
      modellingMatrix 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
      viewingMatrix 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
      projectionMatrix 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
    }

    <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; SunOS 5.6 sun4u) [Netscape]"> <LINK REL="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style"> </HEAD> <BODY> <H4> <A NAME="Heading652"></A>CATALOG PARTS</H4> <CENTER><IMG SRC="../../images/autoCubeNum.gif" ></CENTER> <CENTER><B></B>&nbsp;</CENTER> <UL><B>PoAutoCubeAxis</B> {</UL> <UL> <UL><B>Separator</B> <TT>alternateRep</TT> (from PoBase) {</UL> </UL> <UL> <UL> <UL><B>AppearanceKit</B> <TT>appearance</TT> (from PoBase)</UL> </UL> </UL> <UL> <UL> <UL><I>Specifies the appearance of all the kit. By default lightModel.model=BASE_COLOR.</I></UL> </UL> </UL> <UL> <UL> <UL><B>MatrixTransform</B> <TT>domainTransform</TT> (from PoBase)</UL> </UL> </UL> <UL> <UL> <UL><I>Corresponds to the domain transformation.</I></UL> </UL> </UL> <UL> <UL> <UL><B>Separator</B> <TT>backgroundFaceSep</TT> (from PoAutoCubeAxis) {</UL> </UL> </UL> <UL> <UL> <UL><I>Contains properties and shapes to draw visible faces.</I></UL> </UL> </UL> <UL> <UL> <UL> <UL><B>AppearanceKit</B> <TT>backgroundFaceApp </TT>(from PoAutoCubeAxis)</UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Specifies the appearance of visible faces. By default lightModel.model=PHONG.</I></UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><B>Group</B> <TT>backgroundFace </TT>(from PoAutoCubeAxis)</UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Contains a SoFaceSet shape to draw the visible faces.</I></UL> </UL> </UL> </UL> <UL> <UL> <UL>} <P><B>Separator</B> <TT>mainGradGridSep</TT> (from PoAutoCubeAxis) {</UL> </UL> </UL> <UL> <UL> <UL><I>Contains properties and shapes to draw grid lines of main graduations.</I></UL> </UL> </UL> <UL> <UL> <UL> <UL><B>AppearanceKit</B> <TT>mainGradGridApp </TT>(from PoAutoCubeAxis)</UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Specifies the appearance of grid lines of main graduations.</I></UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><B>Group</B> <TT>mainGradGrid </TT>(from PoAutoCubeAxis)</UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Contains a SoLineSet shape to draw the grid lines of main graduations.</I></UL> </UL> </UL> </UL> <UL> <UL> <UL>} <BR><B>Separator</B> <TT>subGradGridSep</TT> (from PoAutoCubeAxis) {</UL> </UL> </UL> <UL> <UL> <UL><I>Contains properties and shapes to draw grid lines of sub graduations.</I></UL> </UL> </UL> <UL> <UL> <UL> <UL><B>AppearanceKit</B> <TT>subGradGridApp </TT>(from PoAutoCubeAxis)</UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Specifies the appearance of grid lines of sub graduations.</I></UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><B>Group</B> <TT>subGradGrid </TT>(from PoAutoCubeAxis)</UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Contains a SoLineSet shape to draw the grid lines of sub graduations.</I></UL> </UL> </UL> </UL> <UL> <UL> <UL>} <P><B>Switch</B> <TT>xAxisSwitch03</TT> (from PoAutoCubeAxis) {</UL> </UL> </UL> <UL> <UL> <UL> <UL><B>PoLinearAxis/PoLogAxis/PoGenAxis</B> <TT>xAxis03</TT></UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Corresponds to the X-Axis with vertices 0-3</I></UL> </UL> </UL> </UL> <UL> <UL> <UL>} <BR><B>Switch</B> <TT>xAxisSwitch12</TT> (from PoAutoCubeAxis) {</UL> </UL> </UL> <UL> <UL> <UL> <UL><B>PoLinearAxis/PoLogAxis/PoGenAxis</B> <TT>xAxis12</TT></UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Corresponds to the X-Axis with vertices 1-2</I></UL> </UL> </UL> </UL> <UL> <UL> <UL>} <BR><B>Switch</B> <TT>xAxisSwitch65</TT> (from PoAutoCubeAxis) {</UL> </UL> </UL> <UL> <UL> <UL> <UL><B>PoLinearAxis/PoLogAxis/PoGenAxis</B> <TT>xAxis65</TT></UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Corresponds to the X-Axis with vertices 6-5</I></UL> </UL> </UL> </UL> <UL> <UL> <UL>} <BR><B>Switch</B> <TT>xAxisSwitch74</TT> (from PoAutoCubeAxis) {</UL> </UL> </UL> <UL> <UL> <UL> <UL><B>PoLinearAxis/PoLogAxis/PoGenAxis</B> <TT>xAxis74</TT></UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Corresponds to the X-Axis with vertices 7-4</I></UL> </UL> </UL> </UL> <UL> <UL> <UL>} <BR><B>Switch</B> <TT>yAxisSwitch01</TT> (from PoAutoCubeAxis) {</UL> </UL> </UL> <UL> <UL> <UL> <UL><B>PoLinearAxis/PoLogAxis/PoGenAxis</B> <TT>yAxis01</TT></UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Corresponds to the Y-Axis with vertices 0-1</I></UL> </UL> </UL> </UL> <UL> <UL> <UL>} <BR><B>Switch</B> <TT>yAxisSwitch76</TT> (from PoAutoCubeAxis) {</UL> </UL> </UL> <UL> <UL> <UL> <UL><B>PoLinearAxis/PoLogAxis/PoGenAxis</B> <TT>yAxis76</TT></UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Corresponds to the Y-Axis with vertices 7-6</I></UL> </UL> </UL> </UL> <UL> <UL> <UL>} <BR><B>Switch</B> <TT>yAxisSwitch45</TT> (from PoAutoCubeAxis) {</UL> </UL> </UL> <UL> <UL> <UL> <UL><B>PoLinearAxis/PoLogAxis/PoGenAxis</B> <TT>yAxis45</TT></UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Corresponds to the Y-Axis with vertices 4-5</I></UL> </UL> </UL> </UL> <UL> <UL> <UL>} <BR><B>Switch</B> <TT>yAxisSwitch32</TT> (from PoAutoCubeAxis) {</UL> </UL> </UL> <UL> <UL> <UL> <UL><B>PoLinearAxis/PoLogAxis/PoGenAxis</B> <TT>yAxis32</TT></UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Corresponds to the Y-Axis with vertices 3-2</I></UL> </UL> </UL> </UL> <UL> <UL> <UL>} <BR><B>Switch</B> <TT>zAxisSwitch07</TT> (from PoAutoCubeAxis) {</UL> </UL> </UL> <UL> <UL> <UL> <UL><B>PoLinearAxis/PoLogAxis/PoGenAxis</B> <TT>zAxis07</TT></UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Corresponds to the Z-Axis with vertices 0-7</I></UL> </UL> </UL> </UL> <UL> <UL> <UL>} <BR><B>Switch</B> <TT>zAxisSwitch34</TT> (from PoAutoCubeAxis) {</UL> </UL> </UL> <UL> <UL> <UL> <UL><B>PoLinearAxis/PoLogAxis/PoGenAxis</B> <TT>zAxis34</TT></UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Corresponds to the Z-Axis with vertices 3-4</I></UL> </UL> </UL> </UL> <UL> <UL> <UL>} <BR><B>Switch</B> <TT>zAxisSwitch25</TT> (from PoAutoCubeAxis) {</UL> </UL> </UL> <UL> <UL> <UL> <UL><B>PoLinearAxis/PoLogAxis/PoGenAxis</B> <TT>zAxis25</TT></UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Corresponds to the Z-Axis with vertices 2-5</I></UL> </UL> </UL> </UL> <UL> <UL> <UL>} <BR><B>Switch</B> <TT>zAxisSwitch16</TT> (from PoAutoCubeAxis) {</UL> </UL> </UL> <UL> <UL> <UL> <UL><B>PoLinearAxis/PoLogAxis/PoGenAxis</B> <TT>zAxis16</TT></UL> </UL> </UL> </UL> <UL> <UL> <UL> <UL><I>Corresponds to the Z-Axis with vertices 1-6</I></UL> </UL> </UL> </UL> <UL> <UL> <UL>}</UL> </UL> </UL> <UL> <UL>}</UL> </UL> <UL>}</UL> </BODY> </HTML>

    • Field Detail

      • start

        public final SoSFVec3f start
        Start point of the parallelepiped's diagonal. (0,0,0) by default.
      • end

        public final SoSFVec3f end
        End point of the parallelepiped's diagonal. (1,1,1) by default.
      • gradStart

        public final SoSFVec3f gradStart
        Defines the value of the graduation (tick label) corresponding to the starting point of this group of axes. See PoCartesianAxis.gradStart for details.

        Since:
        Open Inventor 9.5.1

      • gradEnd

        public final SoSFVec3f gradEnd
        Defines the value of the graduation (tick label) corresponding to the end point of this group of axes. See PoCartesianAxis.gradEnd for details.

        Since:
        Open Inventor 9.5.1

      • xTitle

        public final SoSFString xTitle
        Title of the X axes. Empty by default.
      • yTitle

        public final SoSFString yTitle
        Title of the Y axes. Empty by default.
      • zTitle

        public final SoSFString zTitle
        Title of the Z axes. Empty by default.
      • isGridLinesXVisible

        public final SoSFBool isGridLinesXVisible
        Sets the visibility of the grid lines of the X axes displayed on the visible faces. (The attributes of grid lines of PoAxis cannot be used because the graduations of thes axes are not necessarily in the same plane than the visible faces). false by default.
      • isGridLinesYVisible

        public final SoSFBool isGridLinesYVisible
        Sets the visibility of the grid lines of the Y axes displayed on the visible faces. (The attributes of grid lines of PoAxis cannot be used because the graduations of thes axes are not necessarily in the same plane than the visible faces). false by default.
      • isGridLinesZVisible

        public final SoSFBool isGridLinesZVisible
        Sets the visibility of the grid lines of the Z axes displayed on the visible faces. (The attributes of grid lines of PoAxis cannot be used because the graduations of thes axes are not necessarily in the same plane than the visible faces). false by default.
      • isBackgroundFacesVisible

        public final SoSFBool isBackgroundFacesVisible
        Sets the visibility of visible faces. false by default.
      • isIntersectingGradsVisible

        public final SoSFBool isIntersectingGradsVisible
        Given A1 and A2 2 consecutive axes with the first (the last) graduation of A1 intersects the first or the last graduation of A2. This flag allows the application to suppress or not the first (the last) graduation of A1. The attribute tickFirstGrad (tickLastGrad) of PoAxis is used to suppress the first (the last) graduation. false by default.
      • viewingMatrix

        public final SoSFMatrix viewingMatrix
        This viewing matrix is used to determine the visibility of each face (and thus the axes to draw). Each time an SoGLRenderAction, an SoCallbackAction, an SoRayPickAction or an SoVectorizeAction traverse this node, this matrix is set to the current viewing matrix and the axes are rebuilt. viewingMatrix depends on the current camera.
      • projectionMatrix

        public final SoSFMatrix projectionMatrix
        This modelling matrix is used to determine the visibility of each face (and thus the axes to draw). Each time an SoGLRenderAction, an SoCallbackAction, an SoRayPickAction or an SoVectorizeAction traverse this node, this matrix is set to the current projection matrix and the axes are rebuilt. projectionMatrix depends on the current camera.