pytower.mesh

class pytower.mesh.OctreeBVH(centroid, size)[source]
Parameters:
__init__(centroid, size)[source]
Parameters:
add_point(p)[source]
Parameters:

p (XYZ)

class pytower.mesh.OctreeNode(centroid, size, point)[source]

Axis-aligned octree node implementation

Parameters:
__init__(centroid, size, point)[source]
Parameters:
contains(point)[source]
Return type:

bool

Parameters:

point (XYZ)

traverse(point)[source]
Return type:

Optional[OctreeNode]

Parameters:

point (XYZ)

class pytower.mesh.TextureBake(num_triangles_size, triangle_size, backend)[source]
Parameters:
TEMP_FILENAME = 'temp_pytower.png'[source]
__init__(num_triangles_size, triangle_size, backend)[source]
Parameters:
add_triangle(mesh, tri_id, uvs, wedge, flipped)[source]
Return type:

TriangleTextureInfo | None

Parameters:
upload()[source]
class pytower.mesh.TextureBakeCollection(num_triangles_size, triangle_size, backend)[source]
Parameters:
__init__(num_triangles_size, triangle_size, backend)[source]
Parameters:
add_triangle(mesh, tri_id, uvs, wedge, flipped)[source]
Return type:

TriangleTextureInfo

Parameters:
upload()[source]
class pytower.mesh.TowerMesh(mesh)[source]
Parameters:

mesh (TriangleMesh)

__init__(mesh)[source]
Parameters:

mesh (TriangleMesh)

get_color(uv, material_id)[source]
Return type:

ndarray

Parameters:
  • uv (ndarray)

  • material_id (int)

get_material_id(tri_id)[source]
Parameters:

tri_id (int)

get_triangle_color(tri_id)[source]
Parameters:

tri_id (int)

get_triangles()[source]
Return type:

ndarray

get_uvs(tri_id)[source]
Return type:

ndarray

Parameters:

tri_id (int)

class pytower.mesh.TriangleTextureInfo(offset_x, offset_y, texture_scale)[source]
Parameters:
__init__(offset_x, offset_y, texture_scale)[source]
Parameters:
pytower.mesh.convert_triangle(face, tri_id, mesh, bakes, rgb=None)[source]

Given a triangular face, convert the face into one or two canvas wedges

Parameters:
Return type:

list[TowerObject]

Returns:

List of TowerObject corresponding to the new canvas wedges

pytower.mesh.divide_triangle(face, uvs)[source]

Given a triangular face as input, divide it into two right triangles using the altitude

Parameters:
  • face (ndarray) – List of triangle face’s vertices

  • uvs (ndarray)

Return type:

(ndarray | None, ndarray | None)

Returns:

Triangle subdivided into two right triangles (i.e., canvas wedges)

pytower.mesh.load_mesh(path)[source]
Return type:

TowerMesh