Source code for py3dtiles.tilers.point.points_writer
from __future__ import annotations
from pathlib import Path
from typing import TYPE_CHECKING
from py3dtiles.tileset.content import Pnts
from py3dtiles.tileset.content.gltf import PointsGltf
from py3dtiles.utils import node_name_to_path
if TYPE_CHECKING:
from py3dtiles.tilers.point.node import DummyNode, Node
[docs]
def node_to_content(
name: bytes,
node: Node | DummyNode,
out_folder: Path,
legacy_format: bool,
) -> int:
points = node.get_points()
if points is None:
return 0
cls = Pnts if legacy_format else PointsGltf
content = cls.from_points(points)
ext = ".pnts" if legacy_format else ".glb"
node_path = node_name_to_path(out_folder, name, ext)
if node_path.exists():
raise FileExistsError(f"{node_path} already written")
content.save_as(node_path)
return content.get_vertex_count()