py3dtiles.tilers.point.node package#

class py3dtiles.tilers.point.node.DummyNode(_bytes: DummyNodeDictType)[source]#

Bases: object

get_points() Points | None[source]#
class py3dtiles.tilers.point.node.Grid(spacing: float, include_rgb: bool, extra_fields: list[ExtraFieldsDescription], 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_extra_fields: dict[str, list[ndarray[Any, dtype[Any]]]]#
cells_rgb: list[ndarray[Any, dtype[uint8 | uint16]]] | None#
cells_xyz: list[ndarray[Any, dtype[uint16 | float32]]]#
get_point_count() int[source]#
get_points() Points | None[source]#
init_cells(aabmin: ndarray[Any, dtype[float32]], inv_aabb_size: ndarray[Any, dtype[float32]], xyz: ndarray[Any, dtype[float32 | uint16]], rgb: ndarray[Any, dtype[uint8 | uint16]] | None, extra_fields: dict[str, ndarray[Any, dtype[Any]]]) None[source]#
insert(aabmin: ndarray[Any, dtype[float32]], inv_aabb_size: ndarray[Any, dtype[float32]], xyz: ndarray[Any, dtype[float32 | uint16]], rgb: ndarray[Any, dtype[uint8 | uint16]] | None, extra_fields: dict[str, ndarray[Any, dtype[T]]]) tuple[ndarray[Any, dtype[float32]], ndarray[Any, dtype[uint8]] | None, dict[str, ndarray[Any, dtype[int8]] | ndarray[Any, dtype[int16]] | ndarray[Any, dtype[int32]] | ndarray[Any, dtype[int64]] | ndarray[Any, dtype[uint8]] | ndarray[Any, dtype[uint16]] | ndarray[Any, dtype[uint32]] | ndarray[Any, dtype[uint64]] | ndarray[Any, dtype[float16]] | ndarray[Any, dtype[float32]] | ndarray[Any, dtype[float64]] | ndarray[Any, dtype[longdouble]]], bool][source]#
property max_key_value: int#
needs_balance() bool[source]#
spacing#
class py3dtiles.tilers.point.node.Node(name: bytes, aabb: ndarray[Any, dtype[float64 | float32]], spacing: float, include_rgb: bool, extra_fields: list[ExtraFieldsDescription])[source]#

Bases: object

docstring for Node

aabb#
aabb_center#
aabb_size#
children: list[bytes] | None#
static create_child_node_from_parent(name: bytes, parent_aabb: npt.NDArray[np.floating[_T]], parent_spacing: float, include_rgb: bool, extra_fields: list[ExtraFieldsDescription]) Node[source]#
dirty#
dump_pending_points() list[tuple[bytes, bytes, int]][source]#
extra_fields#
flush_pending_points(catalog: NodeCatalog, scale: float) None[source]#
get_child_names() Generator[bytes][source]#
get_pending_points_count() int[source]#
get_point_count(node_catalog: NodeCatalog, max_depth: int, depth: int = 0) int[source]#
get_points() Points | None[source]#
grid#
include_rgb#
insert(scale: float, points: Points, make_empty_node: bool = False) None[source]#
inv_aabb_size#
load_from_bytes(byt: bytes) None[source]#
name#
needs_balance() bool[source]#
pending_points: list[Points]#
points: list[Points]#
save_to_bytes() bytes[source]#
spacing#
to_tile(folder: Path, scale: ndarray[Any, dtype[float32]], parent_node: Node | None = None, depth: int = 0, pool_executor: ProcessPoolExecutor | None = None) Tile | None[source]#
class py3dtiles.tilers.point.node.NodeCatalog(nodes: bytes, name: bytes, root_aabb: ndarray[Any, dtype[float64]], root_spacing: float, include_rgb: bool, extra_fields: list[ExtraFieldsDescription])[source]#

Bases: object

NodeCatalog is a store of Node objects.

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.point.node.NodeProcess(node_catalog: NodeCatalog, scale: float, 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]#

Submodules#