Difference between revisions of "Prim Class"

From Derivative
Jump to navigation Jump to search
m
Tag: 2018.28070
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{TDClassSummary|summary=A Prim describes an instance to a single geometry primitive.  They are accessible through the SOP.prims member.}}
+
{{TDClassSummary|label=Prim|summary=A Prim describes an instance to a single [[Primitive|geometry primitive]].  They are accessible through the [[SOP Class|SOP.prims]] member.}}
 
<section begin=HELPBODY />
 
<section begin=HELPBODY />
 
{{ClassMemberSection|empty=
 
{{ClassMemberSection|empty=
Line 14: Line 14:
 
{{ClassMember
 
{{ClassMember
 
     |class=Prim
 
     |class=Prim
     |name=max
+
     |name=index
     |type=tdu.Position
+
     |type=int
 
     |set=0
 
     |set=0
     |text=The maximum coordinates of this primitive along each dimension, expressed as a tdu.Position object.
+
     |text=The primitive index in the list.
}}
 
{{ClassMember
 
    |class=Prim
 
    |name=min
 
    |type=tdu.Position
 
    |set=0
 
    |text=The minimum coordinates of this primitive along each dimension, expressed as a tdu.Position object.
 
 
}}
 
}}
 
{{ClassMember
 
{{ClassMember
Line 38: Line 31:
 
     |type=OP
 
     |type=OP
 
     |set=0
 
     |set=0
     |text=The OP to which this object belongs.
+
     |text=The [[OP Class|OP]] to which this object belongs.}}
 +
{{ClassMember
 +
    |class=Prim
 +
    |name=weight
 +
    |type=float
 +
    |set=0
 +
    |text=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.}}
 +
{{ClassMember
 +
    |class=Prim
 +
    |name=direction
 +
    |type=tdu.Vector
 +
    |set=0
 +
    |text=A normalized vector pointing from the centroid of the SOP to the centroid of this primitive.
 
}}
 
}}
 
{{ClassMember
 
{{ClassMember
 
     |class=Prim
 
     |class=Prim
     |name=size
+
     |name=min
 
     |type=tdu.Position
 
     |type=tdu.Position
 
     |set=0
 
     |set=0
     |text=The size of this primitive along each dimension, expressed as a tdu.Position object.
+
     |text=The minimum coordinates of this primitive along each dimension, expressed as a tdu.Position object.
 
}}
 
}}
 
{{ClassMember
 
{{ClassMember
 
     |class=Prim
 
     |class=Prim
     |name=weight
+
     |name=max
     |type=float
+
     |type=tdu.Position
 
     |set=0
 
     |set=0
     |text=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.
+
     |text=The maximum coordinates of this primitive along each dimension, expressed as a tdu.Position object.
 
}}
 
}}
 
{{ClassMember
 
{{ClassMember
 
     |class=Prim
 
     |class=Prim
     |name=index
+
     |name=size
     |type=int
+
     |type=tdu.Position
 
     |set=0
 
     |set=0
     |text=The primitive index in the list.
+
     |text=The size of this primitive along each dimension, expressed as a tdu.Position object.
 
}}}}
 
}}}}
 
{{ClassMethodSection|empty=
 
{{ClassMethodSection|empty=
 
|Sectionsummary=
 
|Sectionsummary=
 
|items=
 
|items=
+
{{ClassMethod
 +
    |class=Prim
 +
    |name=destroy
 +
    |call=destroy(destroyPoints=True)
 +
    |returns=None
 +
    |text=Destroy and remove the actual primitive this object refers to. This operation is only valid when the primitive belongs to a [[scriptSOP Class|scriptSOP]]. Note: after this call, other existing Prim objects in this SOP may no longer be valid.
 +
*destroyPoints - (Keyword, Optional) If True, its [[Point Class|points]] are destroyed as well, if false, they are simply detached. The argument is True by default.}}
 
{{ClassMethod
 
{{ClassMethod
 
     |class=Prim
 
     |class=Prim
Line 70: Line 81:
 
     |call=eval(u, v)
 
     |call=eval(u, v)
 
     |returns=td.Position
 
     |returns=td.Position
     |text=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.
+
     |text=Evaluate the [[Position Class|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.
 
<syntaxhighlight lang=python>
 
<syntaxhighlight lang=python>
 
center = op('box1').prim[0].eval(0.5, 0.5)
 
center = op('box1').prim[0].eval(0.5, 0.5)
</syntaxhighlight>
+
</syntaxhighlight>}}}}
}}
 
{{ClassMethod
 
    |class=Prim
 
    |name=destroy
 
    |call=destroy(destroyPoints=True)
 
    |returns=None
 
    |text=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.
 
}}}}
 
 
{{SubSection|title=Special Functions
 
{{SubSection|title=Special Functions
 
|text=
 
|text=
Line 125: Line 127:
 
# do something with m, which is a Vertex
 
# do something with m, which is a Vertex
 
</syntaxhighlight>
 
</syntaxhighlight>
}}
+
}}}}
 
<section end=HELPBODY />
 
<section end=HELPBODY />
 
{{History}}
 
{{History}}
 
{{#invoke:Category|list|Python Reference}}
 
{{#invoke:Category|list|Python Reference}}

Revision as of 13:57, 11 January 2019

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


Members[edit]

centertdu.Position :

Get or set the barycentric coordinate of this primitive. It is expressed as a tdu.Position object.

indexint (Read Only):

The primitive index in the list.

normaltdu.Vector (Read Only):

The calculated normal vector of this primitive, expressed as a tdu.Vector object.

ownerOP (Read Only):

The OP to which this object belongs.

weightfloat (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.

directiontdu.Vector (Read Only):

A normalized vector pointing from the centroid of the SOP to the centroid of this primitive.

mintdu.Position (Read Only):

The minimum coordinates of this primitive along each dimension, expressed as a tdu.Position object.

maxtdu.Position (Read Only):

The maximum coordinates of this primitive along each dimension, expressed as a tdu.Position object.

sizetdu.Position (Read Only):

The size of this primitive along each dimension, expressed as a tdu.Position object.

Methods[edit]

destroy(destroyPoints=True)None:

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)td.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)

Special Functions[edit]

len(Prim)int:

Returns the total number of vertices.

a = len(op('box1').prim[0])

[index]td.Vertex:

Get specific vertex given an integer index

n = op('box1').prims[5][0]

[row, col]td.Vertex:

Get specific vertex from a Mesh given integer row and column values.

v = op('grid1').prims[2,3]

Iteratortd.Vertex:

Iterate over each vertex.

for m in op('box1').prims[5]:
	# do something with m, which is a Vertex


TouchDesigner Build: