This PR, which is still a progress, implements a VPC loader for Potree.
The idea is to create one overarching geometry containing an overarching node, both of which contain, for each "href" in the VPC file, a child created by the appropriate loader. The overarching geometry and node thus contain aggregate metadata, while the actual loading of the data then happpens in the children.
The loader is currently in a state where it does show the pointclouds in a recognisable way, but not always with the appropriate resolution. Furthermore, playing with the view (zooming in/out, moving around), some parts of the view might disappear.
This PR contains an example in the examples directory, namely vpc-lion.html. This example loads a VPC file containing one reference to the pointclouds/lion_takanawa.copc.laz file, which is also used in examples/copc.html.
Todos:
Check if more metadata from the VPC files can be used.
Call the appropriate loaders for all file formats the VPC file might reference.
For our geometry implementation (PointCloudVpcBaseGeometry), check if we have overridden/implemented all fields and methods correctly that a geometry needs.
Same for our node implementation (VpcPointCloudTreeNode).
Remove pointclouds/vpc/C_01CZ.vpc and vpc.html, as they require large files that should not be checked into Git or host those files on a remote file server and adapt pointclouds/vpc/C_01CZ.vpc to point to those files.
Have a discussion with the Potree maintainers on how to handle the .vpc extension, as it is also used by PointCloudArena4D for so-called Veesus Point Cloud files.
Better error handling: what if some of the referenced files generate errors (they might not exist, they might be broken, etc.) and others do work?
VPC loader
This PR, which is still a progress, implements a VPC loader for Potree.
The idea is to create one overarching geometry containing an overarching node, both of which contain, for each "href" in the VPC file, a child created by the appropriate loader. The overarching geometry and node thus contain aggregate metadata, while the actual loading of the data then happpens in the children.
The loader is currently in a state where it does show the pointclouds in a recognisable way, but not always with the appropriate resolution. Furthermore, playing with the view (zooming in/out, moving around), some parts of the view might disappear.
This PR contains an example in the
examples
directory, namelyvpc-lion.html
. This example loads a VPC file containing one reference to thepointclouds/lion_takanawa.copc.laz
file, which is also used inexamples/copc.html
.Todos:
PointCloudVpcBaseGeometry
), check if we have overridden/implemented all fields and methods correctly that a geometry needs.VpcPointCloudTreeNode
).pointclouds/vpc/C_01CZ.vpc
andvpc.html
, as they require large files that should not be checked into Git or host those files on a remote file server and adaptpointclouds/vpc/C_01CZ.vpc
to point to those files..vpc
extension, as it is also used byPointCloudArena4D
for so-called Veesus Point Cloud files.