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>
The LatticeXvl DTD describes the 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 > |
Attribute |
Description |
Default Value |
shell Type |
Type of shell: |
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 |