Geometry Types¶
Table of Contents
polymesh
¶
Polygonal mesh geometry. A polygonal mesh is formed of points, a vertex list (defining vertices) and start index list (defining faces). Additional information, such as normals and arbitrary data, can also be defined.
Type  Attribute  Description 

float[3n] 
geometry.point.N 
List of perpoint normals. 
float[3n] 
geometry.point.P 
List of points. The geometry points are unique floating point positions in object space coordinates (x, y, z). Each point is only stored once but it may be indexed many times by a particular vertex. 
int[] 
geometry.poly.startIndex 
A list of indices defining the faces of a mesh. For example,
consider a cube. A cube has a
The indices for each polygon N are from 
int[] 
geometry.poly.vertexList 
Describes the vertex data of a mesh. There is a vertex at each edge
intersection. The value of the vertexList is used as an
index into the geometry.point.P list, which stores the
actual object coordinates of each unique point. Many indices in a
vertexList can index the same point in the
geometry.point.P list. This saves space as a vertex is
described as a simple integer rather then the three floating point
values required to describe a 3D geometry point (x, y, z). 
float[3n] 
geometry.vertex.N 
List of perface vertex normals. 
float[2n] 
geometry.vertex.UV 
List of texture coordinates (per vertex, non facevarying) 
subdmesh
¶
Subdivision surfaces geometry. Subdivision surfaces (Subds) are similarly structured to polygonal meshes.
Note
This section is under construction.
Type  Attribute  Description 

int 
geometry.facevaryinginterpolateboundary
geometry.facevaryingpropagatecorners
geometry.interpolateBoundary 

int[] 
geometry.creaseIndices 

int[] 
geometry.creaseLengths 

float[]
int[] 
geometry.creaseSharpness
geometry.creaseSharpnessLengths 

int[] 
geometry.cornerIndices 

float[] 
geometry.cornerSharpness 

int[] 
geometry.holePolyIndices 

float[] 
geometry.point.Pref 

group 
geometry.point 
See polymesh. 
group 
geometry.poly 
See polymesh. 
group 
geometry.vertex 
See polymesh. 
pointcloud
¶
Point cloud geometry. A point cloud is the simplest form of geometry and only requires point data to be specified.
Type  Attribute  Description 

group 
geometry.point 
See polymesh. 
nurbspatch
¶
NURBS patch geometry. NURBS patches are a special type of geometry, quite different from conventional mesh types. A NURBS curve is defined by its order, a set of weighted control points and a knot vector.
Type  Attribute  Description 

int 
geometry.uSize
geometry.vSize 
The size. 
float[4n] 
geometry.point.Pw 
List of control points and their weights, in the order: x y z w. 
int 
geometry.u.order
geometry.v.order 
The order. 
float 
geometry.u.min
geometry.u.max 
Parameters defining the NURBS patch. 
float[] 
geometry.u.knots
geometry.v.knots 
Knot vector, a sequence of parameter values. 
group 
geometry.trimcurves 
Parameters defining the NURBS patch. 
curves
¶
For creating groups of curves parented to the same transform. Curves cannot be created by the UI but can be created through the Python API.
The following XML is from a scene graph that creates 3 linear curves with 3 segments:
<attr type="GroupAttr" inheritChildren="false">
<attr type="IntAttr" name="degree" tupleSize="1">
<sample value="1 " size="1" time="0"/>
</attr>
<attr type="FloatAttr" name="knots" tupleSize="1">
<sample value="0.0 " size="1" time="0"/>
</attr>
<attr type="IntAttr" name="numVertices" tupleSize="1">
<sample value="4 4 4 " size="3" time="0"/>
</attr>
<attr type="GroupAttr" name="point" inheritChildren="false">
<attr type="FloatAttr" name="P" tupleSize="3">
<sample value="0.2 0 5 2.8 0 2.0 0.5 0 1.0 0.3 0 1.5 1.8 0
4.9 0.4 0 2.2 2.5 0 1.0 1.6 0 1.4 3.8 0 4.9
1.6 0 2.2 4.5 0 1.0 3.6 0 1.4"
size="36" time="0"/>
</attr>
</attr>
</attr>
Type  Attribute  Description 

int 
geometry.basis 
An integer indicating the curve basis. This is defined as follows:
This follows the 
float 
geometry.constantWidth 
A float that defines the width of a curve, which is applied uniformly to each control point. 
int 
geometry.degree 
Specifies whether curves are linear (degree = 1) or cubic (degree = 3). 
float[] 
geometry.knots 
Knot vector is a sequence of parameter values. Note When splitting 
int 
geometry.vstep 
Sets the vertex stride for the curve. This is used by Katana to calculate the expected length of pointscoped arbitrary attribute arrays. 
int[] 
geometry.numVertices 
The number of vertices in each curve. The 
float[3n] 
geometry.point.P 
List of points. The geometry points are unique floating point positions in object space coordinates (x, y, z). Each point is only stored once but it may be indexed many times by the same knot. 
float[3n] 
geometry.point.orientation 
List of orientations for each control point in the curve, relative to the camera. 
float[n] 
geometry.point.width 
List of widths (diameters) of the curve at each control point. Note If both 
locator
¶
Used only in the Viewer; ignored by the renderers.
Type  Attribute  Description 

group 
geometry.point 
See polymesh. 
group 
geometry.poly 
See polymesh. 
sphere
¶
Builtin primitive type for a sphere, supported by some renderers.
Type  Attribute  Description 

double 
geometry.radius 
The radius of the sphere. 
spheres
¶
A more efficient way of creating a group of spheres in PRMan at once. This is ignored by other renderers.
Type  Attribute  Description 

float[3n] 
geometry.point.P 
List of points that represent the sphere centers. 
float[n] 
geometry.point.radius 
The spheres’ radii. 
float 
geometry.constantRadius 
Can be used instead of geometry.point.radius to specify a
single radius for all spheres. 