Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Object Polygons

 

Add this script to a "Batch Script" editor (F10) and execute it with Script > Run.

Get a torus object's polygons, store them in a list container, and print out their number:

 

Code Block
languagepy
# Get the "Torus01" object and its polygons/faces
polygonObject = scene.getObject("Torus01")
polygons      = polygonObject.getFaces()
 

# Print out the "Torus01" node's number of polygons
scene.message("Number of polygons: "+str(len(polygons)))

 

Object Vertices

...

Add this script to a "Batch Script" editor (F10) and execute it with Script > Run.

Get a torus object's vertices, store them in a list container, and print out their number:

 

Code Block
languagepy
# Get the "Torus01" object and its vertices
polygonObject = scene.getObject("Torus01")
vertices      = polygonObject.getVertices()
 
# Print out the "Torus01" node's number of vertices 
scene.message("Number of vertices: "+str(len(vertices)))

 

Polygon Vertices

Add this script to a "Batch Script" editor (F10) and execute it with Script > Run.

Get a torus object's polygons, store them in a list container, and get the three vertices of each polygon. Then, calculate each polygon's midpoint and place a particle there:

Code Block
languagepy
# Get the "Torus01" object, its faces, and vertices
# Define a null position
# Get the "Container01" node
polygonObject   = scene.getObject("Torus01")
polygons        = polygonObject.getFaces()
vertices        = polygonObject.getVertices()

...

vertexPosition  = Vector.new(0,0,0)
container       = scene.get_PB_Emitter("Container01")

...



# Loop through the polygons
for polygon in polygons:
 
	# Indices are the current polygon's vertices
	# Get the three individual vertices
	vertexIndices  = polygon.getIndices()
	vertex0        = vertices[vertexIndices[0]]
	vertex1        = vertices[vertexIndices[1]]
	vertex2        = vertices[vertexIndices[2]]

...


	# Get the individual vertex positions 
	vertex0Pos     = vertex0.getPosition()
	vertex1Pos     = vertex1.getPosition()
	vertex2Pos     = vertex2.getPosition()

...



	# Add the three position vectors
	# Calculate the XYZ averages and apply them to the vertexPosition vector
	vertexPosition = vertex0Pos + vertex1Pos + vertex2Pos
 	

...

vertexPosition.set(

...

vertexPosition.x / 3.0, 

...

vertexPosition.y / 3.0, 

...

vertexPosition.z / 3.0)

	# Add a particles at vertexPosition with velocity 0	 
	container.addParticle(

...

vertexPosition, Vector.new(0,0,0))