# Prim Class

A Prim describes an instance to a single geometry primitive. They are accessible through the SOP.prims member.

## Members[edit]

`center`

→ **(Read Only)**:

Get or set the barycentric coordinate of this primitive. It is expressed as a named 4-tuple (x,y,z,w).

`max`

→ **(Read Only)**:

The maximum coordinates of this primitive along each dimension, expressed as a named 4-tuple (x,y,z,w).

`min`

→ **(Read Only)**:

The minimum coordinates of this primitive along each dimension, expressed as a named 4-tuple (x,y,z,w)

`normal`

→ **(Read Only)**:

The calculated normal vector of this primitive, expressed as a named 4-tuple (x,y,z,w).

`owner`

→ **(Read Only)**:

The OP to which this object belongs.

`size`

→ **(Read Only)**:

The size of this primitive along each dimension, expressed as a named 4-tuple (x,y,z,w).

`weight`

→ **(Read Only)**:

The associated weight of the primitive. Only certain primitives, such as those created by the Metaball SOP can modify this value from its default of 2.0.

`index`

→ **(Read Only)**:

The primitive index in the list.

## Methods[edit]

`destroy(destroyPoints=True)`

:

:

Destroy and remove the actual primitive this object refers to. This operation is only valid when the primitive belongs to a scriptSOP. Note: after this call, other existing Prim objects in this SOP may no longer be valid.

destroyPoints - (Keyword, Optional) If True, its points are destroyed as well, if false, they are simply detached. The argument is True by default.

`eval(u, v)`

:

: -> Position

Evaluate the position on the primitive given the u,v coordinates. u,v should be in the range [0,1]. Polygons and curves ignore the v parameter.

center = op('box1').prim[0].eval(0.5, 0.5)

TouchDesigner Build:

An Operator Family that reads, creates and modifies 3D polygons, curves, NURBS surfaces, spheres, meatballs and other 3D surface data.