py3dtiles.tilers.node package

class py3dtiles.tilers.node.DummyNode(_bytes: _DummyNodeDictType)[source]

Bases: object

class py3dtiles.tilers.node.Grid(node: Node, initial_count: int = 3)[source]

Bases: object

docstring for Grid

balance(aabb_size: ndarray[Any, dtype[float32]], aabmin: ndarray[Any, dtype[float32]], inv_aabb_size: ndarray[Any, dtype[float32]]) None[source]
cell_count
cells_classification
cells_rgb
cells_xyz
get_point_count() int[source]
get_points(include_rgb: bool, include_classification: bool) ndarray[Any, dtype[uint8]][source]
insert(aabmin: ndarray[Any, dtype[float32]], inv_aabb_size: ndarray[Any, dtype[float32]], xyz: ndarray[Any, dtype[float32]], rgb: ndarray[Any, dtype[uint8]], classification: ndarray[Any, dtype[uint8]], force: bool = False) tuple[ndarray[Any, dtype[float32]], ndarray[Any, dtype[uint8]], ndarray[Any, dtype[uint8]], bool][source]
property max_key_value: int
needs_balance() bool[source]
spacing
class py3dtiles.tilers.node.Node(name: bytes, aabb: ndarray[Any, dtype[float64 | float32]], spacing: float)[source]

Bases: object

docstring for Node

aabb
aabb_center
aabb_size
children: list[bytes] | None
dirty
dump_pending_points() list[tuple[bytes, bytes, int]][source]
flush_pending_points(catalog: NodeCatalog, scale: float) None[source]
get_child_names() Generator[bytes, None, None][source]
get_pending_points_count() int[source]
get_point_count(node_catalog: NodeCatalog, max_depth: int, depth: int = 0) int[source]
static get_points(data: Node | DummyNode, include_rgb: bool, include_classification: bool) ndarray[Any, dtype[uint8]][source]
grid
insert(scale: float, xyz: ndarray[Any, dtype[float32]], rgb: ndarray[Any, dtype[uint8]], classification: ndarray[Any, dtype[uint8]], make_empty_node: bool = False) None[source]
inv_aabb_size
load_from_bytes(byt: bytes) None[source]
name
needs_balance() bool[source]
pending_classification: list[ndarray[Any, dtype[uint8]]]
pending_rgb: list[ndarray[Any, dtype[uint8]]]
pending_xyz: list[ndarray[Any, dtype[float32]]]
points: list[tuple[ndarray[Any, dtype[float32]], ndarray[Any, dtype[uint8]], ndarray[Any, dtype[uint8]]]]
save_to_bytes() bytes[source]
spacing
to_tileset(folder: Path, scale: ndarray[Any, dtype[float32]], parent_node: Node | None = None, depth: int = 0, pool_executor: ProcessPoolExecutor | None = None) TileDictType | None[source]
class py3dtiles.tilers.node.NodeCatalog(nodes: bytes, name: bytes, octree_metadata: OctreeMetadata)[source]

Bases: object

NodeCatalog is a store of Node objects.py3dtiles

Using a NodeCatalog allows to only store a children names in nodes, instead of storing a full recursive structure.

dump(name: bytes, max_depth: int) bytes[source]

Serialize the stored nodes to a bytes list

get_node(name: bytes) Node[source]

Returns the node mathing the given name

class py3dtiles.tilers.node.NodeProcess(node_catalog: NodeCatalog, octree_metadata: OctreeMetadata, name: bytes, tasks: List[bytes], begin: float, log_file: TextIO | None)[source]

Bases: object

infer_depth_from_name() int[source]
run() Generator[Tuple[bytes, bytes, int], None, None][source]
class py3dtiles.tilers.node.SharedNodeStore(folder: Path)[source]

Bases: object

control_memory_usage(max_size_mb: int, verbose: int) None[source]
get(name: bytes, stat_inc: int = 1) bytes[source]
print_statistics() None[source]
put(name: bytes, data: bytes) None[source]
remove(name: bytes) None[source]
remove_oldest_nodes(percent: float = 100) Tuple[int, int][source]

Submodules