Class KX_MeshProxy
source code
A mesh object.
You can only change the vertex properties of a mesh object, not the
mesh topology.
To use mesh objects effectively, you should know a bit about how the
game engine handles them.
-
Mesh Objects are converted from Blender at scene load.
-
The Converter groups polygons by Material. This means they can be
sent to the renderer efficiently. A material holds:
-
The texture.
-
The Blender material.
-
The Tile properties
-
The face properties - (From the "Texture Face"
panel)
-
Transparency & z sorting
-
Light layer
-
Polygon shape (triangle/quad)
-
Game Object
-
Verticies will be split by face if necessary. Verticies can only
be shared between faces if:
-
They are at the same position
-
UV coordinates are the same
-
Their normals are the same (both polygons are "Set
Smooth")
-
They are the same colour
For example: a cube has 24 verticies: 6 faces with 4 verticies per
face.
The correct method of iterating over every KX_VertexProxy in a
game object:
import GameLogic
co = GameLogic.getcurrentController()
obj = co.getOwner()
m_i = 0
mesh = obj.getMesh(m_i) # There can be more than one mesh...
while mesh != None:
for mat in range(mesh.getNumMaterials()):
for v_index in range(mesh.getVertexArrayLength(mat)):
vertex = mesh.getVertex(mat, v_index)
# Do something with vertex here...
# ... eg: colour the vertex red.
vertex.colour = [1.0, 0.0, 0.0, 1.0]
m_i += 1
mesh = obj.getMesh(m_i)
integer
|
getNumMaterials()
Gets the number of materials associated with this object. |
source code
|
|
string
|
|
string
|
|
integer
|
|
KX_VertexProxy
|
|
boolean
|
|
Gets the name of the specified material.
- Parameters:
matid (integer) - the specified material.
- Returns: string
- the attached material name.
|
Gets the name of the specified material's texture.
- Parameters:
matid (integer) - the specified material
- Returns: string
- the attached material's texture name.
|
Gets the length of the vertex array associated with the specified
material.
There is one vertex array for each material.
- Parameters:
matid (integer) - the specified material
- Returns: integer
- the number of verticies in the vertex array.
|
Gets the specified vertex from the mesh object.
- Parameters:
matid (integer) - the specified material
index (integer) - the index into the vertex array.
- Returns: KX_VertexProxy
- a vertex object.
|
Updates the physics system with the changed mesh.
A mesh must have only one material with collision flags, and have all
collision primitives in one vertex array (ie. < 65535 verts) and be
either a polytope or polyheder mesh. If you don't get a warning in the
console when the collision type is polytope, the mesh is suitable for
reinstance.
- Returns: boolean
- True if reinstance succeeded, False if it failed.
|