Face set example

A face set (fs) has a header followed by a list of points followed by a list of face descriptions. Header contains the number of points and faces.

In the list of points each point has its x y and z coordinates separated with a space. Point indices start from 0 and each point can be referred from any of the face descriptions.

Each face has a face description. This begins with the number of vertexes in the face. For each vertex there is a point index (v#) and type of the edge (T) starting from that point. An edge is thus described in format v0 T v1 where v1 is also the start point for the next edge in that face.

Notice that the vertex v0 in first face and the vertex v9 in the second face refer to the same point index #2.

Example of face definition:

This face has eight vertexes and it refers point indices 14, 12, 10, 8, 6, 4, 2 and 0. First edge is visible and it starts from point #14 and ends to point #12 which is also the start point for the next edge.

Edge types

  • V for visible, real edge.

  • S for edge joins faces originating from a smooth surface. Edge itself is visible only when at silhouette. Used mostly in revolved faces.

  • I for invisible edge, probably created during triangulation.

Example of a stub-in

This is an example of an object in a dump file. Header data is not included so this example can’t be imported as a 3DD file. Comments are not included in the actual dump file.

fs 17 9/* 17 vertexes and 9 faces */

   135 0 196/* Coordinates of point #0 */

   135 68 196/* Coordinates of point #1 */

   138 0 203/* Coordinates of point #2 */

   138 64 203

   145 0 206

   145 61 206

   152 0 203

   152 64 203

   155 0 196

   155 68 196

   152 0 189

   152 64 189

   145 0 186

   145 61 186

   138 0 189/* Coordinates of point #14 */

   138 64 189/* Coordinates of point #15 */

   145 61 196/* Coordinates of node point */

 

/* First face has eight vertexes. First edge is drawn from vertex #14 to #12 (visible), next edge is drawn from vertex #12 to #10 etc… and the last edge is drawn from vertex #0 to vertex #14 */

 

  8 14 V 12 V 10 V 8 V 6 V 4 V 2 V 0 V/* First face */

   4 0 V 2 S 3 V 1 S/* Second face */

   4 2 V 4 S 5 V 3 S

   4 4 V 6 S 7 V 5 S

   4 6 V 8 S 9 V 7 S

   4 8 V 10 S 11 V 9 S

   4 10 V 12 S 13 V 11 S

   4 12 V 14 S 15 V 13 S/* Eighth face */

   4 14 V 0 S 1 V 15 S/* Ninth face */