@huukhanhnguyen/types / objects/pointCloud
objects/pointCloud
PointCloudData
PointCloudData = {
points:PointEntity[]; }
Geometry-tier point-cloud data document — the bag of points, a sibling of instances[] under the object.
points
points:
PointEntity[]
PointCloudInstance
PointCloudInstance =
BaseInstance& {material?:string; }
PointCloudObject
PointCloudObject =
BaseObject& {data:PointCloudData;instances:PointCloudInstance[];type:"pointCloud"; }
An object whose data is points and nothing else.
The name is the industry's (Blender OB_POINTCLOUD, Rhino ON_PointCloud). A point intersects nothing and cuts nothing, so a cloud never needs the boolean/offset/trim machinery the other content kinds do.
PointEntity
PointEntity = {
attributes?:Record<string,unknown> |null;position:Point;size?:number; }
One point of a cloud. An IMPORTED cloud (LIDAR, photogrammetry) carries per-point claims straight from its source format, so the point is a record rather than a bare position.
attributes?
optionalattributes?:Record<string,unknown> |null
Opaque per-point claims (colour, classification, intensity, …). Absent or null === no claims.
position
position:
Point
size?
optionalsize?:number
Display size/radius for this point. Absent === renderer default. Named directly rather than buried in attributes because it is near-universal: USD UsdGeomPoints.widths, Houdini pscale, Blender's point-cloud radius.