What's New in Director 8.5 > Working with Models and Model Resources > Primitives > Mesh generator properties |  |

Mesh generator properties

The mesh generator is the most complex model resource. It allows experienced 3D programmers to create complicated geometries at run time.

The mesh generator primitive's `type` property is #mesh and is created by the member's newMesh() command. The parameters included with that command describe how large the mesh will be.

You can use the mesh deform modifier to manipulate vertex positions at run time for `#mesh` or any other type of model resource. You can also use the `#mesh` primitive to change mesh properties directly, but this is usually not practical, because the mesh must be rebuilt mathematically after each modification.

Use these properties to work with mesh primitives:

Property | Access | Description | Value Range
--- | --- | --- | ---
`vertexList` | Get and set | Lingo vector values for each vertex in the mesh. Several faces may share a single vertex. | Set the value to the number of vectors specified in your `newMesh` call.
`normalList` | Get and set | Lingo vector values for each normal in the mesh. Several faces may share a single normal. A normalized vector is one in which all components are of unit length. You can use the `generateNormals()` command instead of specifying normals yourself. In that case, set 0 as the number of normals in your `newMesh()` call. The normals are calculated based on a clockwise vertex winding. That is to say, if you imagine the vertices being wound down a spindle, they would be wound from left to right, in a clockwise manner. | No default. Instead, set the value to the number of vectors specified in your `newMesh` call.
`textureCoordinateList` `` `texcoordlist` | Get and set | A list of sublists identifying locations in an image used for texture-mapping a triangle. Each sublist contains two values between 0.0 and 1.0 that define a location and can be arbitrarily scaled to any texture size. | No default. Instead, set the value to the number of two-element sublists specified in your `newMesh` call.
`colorList` | Get and set | List identifying every color in the mesh. Any color can be shared by several faces. Alternatively, specify texture coordinates for the mesh faces and apply a shader to models using this model resource. | No default. Instead, set the value to the number of colors specified in your `newMesh` call.
`face.count` | Get | Number of triangles in the mesh. | The number of faces specified in your `newMesh` call.
`face[``index``]. vertices` | Get and set | List indicating which vertices to use for faces at designated index points. | Set the value to a list of three integers specifying the indexes of the vertices in the `vertexList` that define this face.
`face[``index``].normals` | Get and set | List indicating which normals to use for faces at designated index points. | Set the value to a list of three integers specifying the indexes of the normals in the `normalList` that each point of the triangle should use. Don't set a value if you aren't defining your own normals.
`face[``index``].textureCoordinates` `` `face[``index``].texcoords` | Get and set | List indicating which texture coordinates to use for faces at designated index points. | Set the value to a list of three integers specifying the indexes of the texture coordinates in the `textureCoordinates` List that each point of the triangle should use. Don't set a value if you aren't defining your own texture coordinates.
`face[``index``].colors` | Get and set | List indicating which colors to use for faces at designated index points. | Set the value to a list of three integers specifying the indexes of the colors in the colorList that each point of the triangle should use. Don't set a value if you aren't defining your own colors.
`face[``index``].` `shader` | Get and set | Shader used for rendering the face. | Shader defined for use with this face.