[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

DTD



Hallo,
hier eine weitestgehend kommentierte und unserer Meinung nach
vollstaendige DTD.
Einen schoenen Tag noch
<!ENTITY % Boolean 	"(true|false|0|1)">     <!-- Boolean    -->
<!ENTITY % UByte 	"CDATA"> <!-- unsigned number between 0 and 255 -->
<!ENTITY % Float  	"CDATA"> <!-- Float -->
<!ENTITY % Float01      "CDATA"> <!-- Float between 0 and 1 -->
<!ENTITY % UFloat	"CDATA"> <!-- unsigned Float -->
<!ENTITY % Float0Pi	"CDATA"> <!-- Float between 0 and 3.14159 -->
<!ENTITY % UInt         "CDATA"> <!-- unsigned integer -->

<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<!ELEMENT X3DScene (WorldInfo?, Background?, Viewpoint*, Group+)>
				              <!-- root-tag -->
<!ATTLIST X3DScene
	ambientLight   %Float01;    "0.1">    <!-- "Scenelight" -->

<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->


<!ELEMENT WorldInfo (Title?,Info?)> <!-- contains title and informations-->
				    <!-- about the scene -->
<!ELEMENT Title (#PCDATA)>
<!ELEMENT Info (#PCDATA)>

<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->


<!ELEMENT Background (Color?)>   <!-- color for a simple background-->
                                 <!-- This element can be extented. -->

<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

	
<!ELEMENT Viewpoint (Position, Orientation, Description?)>
<!ATTLIST Viewpoint
         fieldOfView  %Float0Pi;  "0.785398">  <!-- angle between [0;3.14159] -->

<!ELEMENT Orientation EMPTY> <!-- orientation specifies a rotation of the camera -->
<!ATTLIST Orientation
        x  %Float;   "0"
        y  %Float;   "0"
        z  %Float;   "1"
	rad  %Float; "0">

<!ELEMENT Description (#PCDATA)> <!-- gives a name to the viewpoint/camera -->

<!ELEMENT Position EMPTY> <!-- in default-position and orientation the viewer -->
   			  <!-- is on the Z-axis looking down the -Z-axis -->	
<!ATTLIST Position
        x  %Float;   "0"
        y  %Float;   "0"
        z  %Float;   "10">

<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->


<!ELEMENT Group ((Translation|Scale|ScaleOrientation|Rotation)*,
		(Group|Shape|DirectionalLight|SpotLight|PointLight)*)>
<!ATTLIST Group
	DEF    ID      #IMPLIED
        USE    IDREF   #IMPLIED>
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<!ELEMENT Rotation EMPTY>    <!-- (0,0,0) and (x,y,z) define the axis,-->
			     <!-- rad is a radian of the rotation -->
<!ATTLIST Rotation
	x  %Float;	#REQUIRED			
        y  %Float;	#REQUIRED
	z  %Float;	#REQUIRED
	rad  %Float;	#REQUIRED>

<!ELEMENT Scale EMPTY>  <!-- specifies a scale of the coordinate system-->
<!ATTLIST Scale
        x  %UFloat;   #REQUIRED
        y  %UFloat;   #REQUIRED
        z  %UFloat;   #REQUIRED>

<!ELEMENT Translation EMPTY> <!-- specifies a translation of the system-->
<!ATTLIST Translation
        x  %Float;   #REQUIRED
        y  %Float;   #REQUIRED
        z  %Float;   #REQUIRED>

<!ELEMENT ScaleOrientation EMPTY> <!-- shear:specifies scales in-->
				 <!-- arbitrary orientation>-->
 <!ATTLIST ScaleOrientation
	x  %Float;	#REQUIRED			
        y  %Float;	#REQUIRED
	z  %Float;	#REQUIRED
	rad  %Float;	#REQUIRED>

<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<!ELEMENT Shape (Material?, (Sphere|PointSet|IndexedLineSet|IndexedFaceSet)?) >
	  <!-- The Shape node has two fields, material and geometry,-->
	  <!-- which are used to create rendered objects in the world.-->
<!ATTLIST Shape
	DEF    ID      #IMPLIED
        USE    IDREF   #IMPLIED>
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<!ELEMENT Material (DiffuseColor?, SpecularColor?)>
		    <!-- The fields in the Material node determine how light -->
		    <!-- reflects off an object to create colour -->

<!ATTLIST Material
	ambientIntensity %Float01; "0.2"
        DEF    ID      #IMPLIED
        USE    IDREF   #IMPLIED>

<!ELEMENT DiffuseColor EMPTY>  <!-- diffuseColor includes coefficient -->
				<!-- of diffuse reflection -->
<!ATTLIST DiffuseColor
        r   %UByte;  "204"
	g   %UByte;  "204"
        b   %UByte;  "204">


<!ELEMENT SpecularColor EMPTY> <!-- specularColor includes coefficient -->
			  <!-- of specular reflection,shininess, wave angle --> 		
<!ATTLIST SpecularColor
 	r   %UByte;  "255"
	g   %UByte;  "255"
        b   %UByte;  "255">

<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->


<!ELEMENT Sphere (Longitude, Latitude)?>
			<!-- defaulted coordinates of the center:(0|0|0) -->
<!ATTLIST Sphere
	radius 		%UFloat; "1"
	DEF    		ID       #IMPLIED
        USE    		IDREF    #IMPLIED>

<!ELEMENT Longitude EMPTY>	
<!ATTLIST Longitude
        longi  %UInt;   #REQUIRED>

<!ELEMENT Latitude EMPTY>
<!ATTLIST Latitude
        lati  %UInt; 	#REQUIRED>			

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->


<!ELEMENT PointSet (CoordinateVector, ColorVector?)>
				 <!-- a set of 3D points with color and size -->
<!ATTLIST PointSet
	pointsize   %UInt;   "1">


<!ELEMENT IndexedLineSet (CoordinateVector, CoordIndex, ColorVector?)>
					<!-- 3D geometry formed by polylines -->
<!ATTLIST IndexedLineSet
        linesize %UInt; "1"
	DEF    ID     #IMPLIED
        USE    IDREF  #IMPLIED>


<!ELEMENT IndexedFaceSet (CoordinateVector, CoordIndex, ColorVector?, NormalVector?)>  <!-- 3D shape formed by polylines -->
                           <!-- coordinates orientated against counterclockwise -->
<!ATTLIST IndexedFaceSet
	 DEF    ID     #IMPLIED
         USE    IDREF  #IMPLIED>

<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->


<!ELEMENT CoordinateVector (Point*)> <!-- Vector of 3D-Coordinates of floats -->
<!ELEMENT Point EMPTY>   <!-- one coordinate of floats -->
<!ATTLIST Point
        x  %Float;   #REQUIRED
        y  %Float;   #REQUIRED
        z  %Float;   #REQUIRED>



<!ELEMENT CoordIndex (Polyline*)>   <!-- Vector of polylines -->

<!ELEMENT Polyline (#PCDATA)>       <!-- polyline defined by pointindices -->
                                    <!-- for example: 0 2 1 6 -->



<!ELEMENT ColorVector (Color*)>     <!-- vector of RGB-Colors -->
<!ELEMENT Color EMPTY>	 <!-- one RGB-Color --> 	
<!ATTLIST Color
        r    %UByte;   #REQUIRED
	g    %UByte;   #REQUIRED
	b    %UByte;   #REQUIRED
	DEF    ID      #IMPLIED
        USE    IDREF   #IMPLIED>
			<!-- RGB-Color-Values between 0 and 255 -->


<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->



<!ELEMENT NormalVector (Normal*)> <!-- Vector of 3D-normals of floats -->
<!ELEMENT Normal EMPTY>    <!-- one normal of floats -->
<!ATTLIST Normal
        x  %Float;   #REQUIRED
        y  %Float;   #REQUIRED
        z  %Float;   #REQUIRED>


<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->


<!ELEMENT DirectionalLight (LightColor?, Direction)>
       <!-- The DirectionalLight node defines a directional light source that -->
       <!-- illuminates along rays parallel to a given 3-dimensional vector. -->
<!ATTLIST DirectionalLight
	ambientIntensity  %Float01;  "0.0"
        intensity         %Float01;  "1">

<!ELEMENT PointLight (Point, Attenuation?, LightColor?)>
	<!-- A point light source emits light equally in all direction -->
<!ATTLIST PointLight
	ambientIntensity %Float01;  "0.0"
	intensity        %Float01;  "1"
	radius           %UFloat;   "100">
                           <!-- radius: maximum distance from location -->
                           <!--that may be illuminated by the light source -->

<!ELEMENT SpotLight (Point, Attenuation?, LightColor?, Direction)>
	<!-- The SpotLight node defines a light source that emits light -->
	<!-- from a specific point along a specific direction vector -->
	<!-- and constrained within a solid angle.-->
<!ATTLIST SpotLight
	ambientIntensity %Float01;  "0.0"
	beamWidth        %Float0Pi; "1.570796"
	cutOffAngle      %Float0Pi; "0.785398"
	intensity        %Float01;  "1"
	radius           %UFloat;   "100">
	<!-- Point: location of the light source -->
	<!-- radius: range of the light source -->
	<!-- beamWidth specifies the inner solid angle -->
        <!-- cutOffAngle specifies the outer bound of the solid angle -->

<!ELEMENT Attenuation EMPTY>
<!ATTLIST Attenuation
        a   %UFloat;   "1"
        b   %UFloat;   "0"
	c   %UFloat;   "0">

        <!-- SpotLight illumination falls off with distance as specified by -->
        <!-- three attenuation coefficients. -->
        <!-- The attenuation factor is -->
        <!-- 1/max(attenuation[0] + attenuation[1]*r + attenuation[2]*r^2, 1), -->
        <!-- where r is the radius. -->

<!ELEMENT LightColor EMPTY>
<!ATTLIST LightColor
        r   %UByte;  "255"
	g   %UByte;  "255"
        b   %UByte;  "255">

<!ELEMENT Direction EMPTY>
<!ATTLIST Direction
        x   %Float;   #REQUIRED
        y   %Float;   #REQUIRED
        z   %Float;   #REQUIRED>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->