PointsLocation.kl¶
Types¶
Points (object)¶
The Points object implements a point cloud geometry. All its data is contained in its GeometryAttributes container that can be retrieved by calling Points.getAttributes.
Point sizes¶
A size attribute can be defined by Points.getOrCreateSizesAttribute or Points.setSizesAttribute. This attribute will then be used by helpers such as Points.getSize, and the point bounding spheres defined by the size will be used to compute points’ volume for SpatialQueryable functions such as Points.raycast.
If no size attribute is defined, the Points.defaultPointSize constant will be used as the size for all points.
Members¶
GeometryAttributes | attributes | Container for all attributes. |
String | debugName | Name that will be printed in descriptions. |
UInt32 | structureVersion | Version of the geometry structure itself, excluding the GeometryAttributes content. |
Boolean | computeGPUBoundingVolume | If positions are on the GPU: if true, the bounding volume is computed, else an infinite bbox is returned. |
ThreadsafeMetaDataContainer | metaData | Container for holding various user data (Geometry specific), such as the BoundingBox cache data, or raycast acceleration structures and data (Octree). |
Scalar | defaultPointSize | used for get/setSize if sizesAttribute is not specified (see Point sizes) |
Ref<ScalarAttribute> | sizesAttribute | used for get/setSize if specified (see Point sizes) |
/*
** Example: Points
*/
require Geometry;
operator entry() {
Points points = Points();
points.getOrCreateSizesAttribute();
points.resize( 5 );
for( Size i = 0; i < 5; ++i ) {
points.setPointPosition( i, Vec3( 0, i, 0 ) );
points.setSize( i, (i+1) * 0.1f );
}
report( points.getDesc(true, false) );
}
/*
** Output:
Points: Points pointCount: 5 nbAttributeVectors: 2
Attributes: nb elements = 5
0: positions={x:+0.0,y:+0.0,z:+0.0} pointSizes=+0.1
1: positions={x:+0.0,y:+1.0,z:+0.0} pointSizes=+0.2
2: positions={x:+0.0,y:+2.0,z:+0.0} pointSizes=+0.3
3: positions={x:+0.0,y:+3.0,z:+0.0} pointSizes=+0.4
4: positions={x:+0.0,y:+4.0,z:+0.0} pointSizes=+0.5
*/
Methods¶
ImportExportHelpers methods¶
_getPointsAsExternalArray ? ( io Float32 values<>, in Size components ) | |
_getPointsAsExternalArray_d ? ( io Float64 values<>, in Size components ) |
SpatialQueryable methods¶
Boolean | areGeometryLocationsEquivalent ? ( in GeometryLocation location0, in GeometryLocation location1 ) |
Ref<SpatialQuery> | beginSpatialQuery ? () |
endSpatialQuery ? ( in Ref<SpatialQuery> query ) | |
GeometryLocation | getClosest ? ( in Vec3 position, in Vec3 scaling, in Scalar maxUnscaledDistance ) |
getLocationAttributeIndicesAndWeights ? ( in GeometryLocation location, io LocalL16UInt32Array attributeIndices, io LocalL16ScalarArray weights ) | |
Vec3 | getLocationBoundingSphereCoordinate ? ( in GeometryLocation location ) |
Size | getLocationPointIndex ? ( in GeometryLocation location ) |
Vec3 | getPositionAtLocation ? ( in GeometryLocation location ) |
Boolean | isLocationAtPointCenter ? ( in GeometryLocation location ) |
prepareForSpatialQueries ? ( in Size approximateNumberOfQueries, in GenericValueContainer options ) | |
GeometryLocation | raycast ? ( in Ray ray, in Boolean doubleSided, in Scalar coneThreshold, in Scalar maxDistance ) |
removeSpatialQueryAcceleration ! () |