LatticeXvl Elements

 

X3D LatticeXvl Elements

The X3D LatticeXvl extension consists of a single element: XvlShell.  XvlShell is an extended geometry element that encapsulates all the attributes needed to describe a Lattice structure.   The following fragment shows a scene conatining an XvlShell element:

<X3D>
    <Scene>
        <Shape>
            <XvlShell>

                <!-- structure of XvlShell is described here -->
            </XvlShell>
        </Shape>

    </Scene>
</X3D>

X3D LatticeXvl DTD

The LatticeXvl DTD describes the XvlShell element.

XvlShell Element

<!-- for future: G1T1 level -->

<!ENTITY % XvlG1T1ShellTypes "" >

 

<!-- Types of XVL Shells -->

<!ENTITY % XvlShell.shellTypes " %XvlG1T1ShellTypes; POLYGON_MESH | LATTICE_MESH " >

 

<!-- XvlShell geometry node -->

<!ELEMENT   XvlShell (

      ( (%TextureCoordinateNodes;), ((%CoordinateNodes;) | %WildcardNodes;)  ) |

      ( (%CoordinateNodes;), ((%TextureCoordinateNodes;) | %WildcardNodes;)? ) |

      ( %WildcardNodes;, ((%TextureCoordinateNodes;) | (%CoordinateNodes;) | %WildcardNodes;)?) )?

>

<!ATTLIST   XvlShell

    shellType          ( %XvlShell.shellTypes; )  #IMPLIED

    numberOfDivisions    %SFInt32;  #IMPLIED

    vertexRound          %MFFloat;  #IMPLIED

    edgeStartCoordIndex  %MFInt32;  #IMPLIED

    edgeEndCoordIndex    %MFInt32;  #IMPLIED

    edgeRound            %MFFloat;  #IMPLIED

    edgeStartVector      %MFVec3f;  #IMPLIED

    edgeEndVector        %MFVec3f;  #IMPLIED

    faceCoordIndex       %MFInt32;  #IMPLIED

    faceTexCoordIndex    %MFInt32;  #IMPLIED

    faceEmpty            %MFBool;   #IMPLIED

    faceHidden           %MFBool;   #IMPLIED

    nodeTypeHint         NMTOKEN    #FIXED  "IndexedFaceSet"

    DEF                  ID         #IMPLIED

    USE                  IDREF      #IMPLIED

>

XvlShell Attributes

Attribute

Description

Default Value

shell Type

Type of shell:
POLYGON_MESH - Surface set shell that consists of polygons.
LATTICE_MESH - Surface set shell that consists of polygons with rounding.

LATTICE_MESH

numberOfDivisions

Number of subdivisions, (tesselation) of each face.

4

vertexRound

Rounding weight – one per vertex.

NULL

edgeStartCoordIndex

Coordinate indexes for edge start vertices – one per edge.

NULL

EdgeEndCoordIndex

Coordinate indexes for edge end vertices – one per edge.

NULL

EdgeRound

Rounding weight – one per edge.

NULL

EdgeStartVector

Tangent vector at start of edge – one per edge.

NULL

EdgeEndVector

Tangent vector at end of edge – one per edge.

NULL

FaceCoordIndex

Coordinate indexes of each face. 

NULL

FaceTexCoordIndex

TextureCoordinate indexes of each face.

NULL

FaceEmpty

Empty flags – one per face.  Empty faces are “holes” which do not contribute to the computation of the surface.  Since they are not part of the surface, they are never rendered.

NULL

FaceHidden

Hidden flags – one per face.  Hidden faces may or may not be empty, but they are never rendered.

NULL