FlowEngine 7.530
Photogrammetry Software Development Kit
|
Stores a simple Dense Point Cloud object for the FlowEngine interface. More...
#include <StereoPointCloudInterface.h>
Public Member Functions | |
virtual FLE_DLL | ~StereoPointCloudInterface ()=default |
Default virtual destructor. | |
virtual FLE_DLL Index | getPointCount () const =0 |
virtual FLE_DLL Index | getSeedPointCount () const =0 |
virtual FLE_DLL Result | getPointPosition (Index idx, Point3 &outPosition) const =0 |
virtual FLE_DLL Result | getPointNormal (Index idx, Normal &outNormal) const =0 |
virtual FLE_DLL Result | getPointColor (Index idx, Color &outColor) const =0 |
virtual FLE_DLL Index | getPointVisibilityCount (Index pointIndex) const =0 |
virtual FLE_DLL Result | getPointVisibility (Index pointIndex, Index visibilityIndex, CameraInterface &outCamera) const =0 |
virtual FLE_DLL double | getMeanPointDistance () const =0 |
virtual FLE_DLL Result | mergeWith (ConstBuffer< StereoPointCloudInterface * > others, bool lastMerge=true)=0 |
virtual FLE_DLL Result | copyFrom (const StereoPointCloudInterface &inStereoPoints)=0 |
virtual FLE_DLL Result | reset (Size vertexCount)=0 |
virtual FLE_DLL Result | reset (ConstBuffer< Point3 > vertexData, ConstBuffer< Color > colorData, ConstBuffer< Normal > normalData)=0 |
virtual FLE_DLL Result | replaceVisibility (ConstBuffer< CameraInterface * > cameras)=0 |
virtual FLE_DLL Result | setPointPosition (Index idx, const Point3 &position)=0 |
virtual FLE_DLL Result | setPointNormal (Index idx, const Normal &normal)=0 |
virtual FLE_DLL Result | setPointColor (Index idx, const Color &color)=0 |
virtual FLE_DLL Result | transform (ConstBuffer< double > transform)=0 |
virtual FLE_DLL Result | initializeSeeds (LogListenerInterface &logListener, Index seedPoints, Buffer< CameraInterface * > bubbleViewCameras)=0 |
virtual FLE_DLL Result | removePoint (Index index)=0 |
virtual FLE_DLL Result | removePoints (ConstBuffer< Index > indexes)=0 |
virtual FLE_DLL Result | copyPointsPositions (Buffer< Point3 > outData) const =0 |
virtual FLE_DLL Result | saveToPly (ConstStringBuffer filePath, bool saveColors=true, bool saveNormals=true, bool useBinaryEncoding=true) const =0 |
Save the point cloud to PLY file. | |
virtual FLE_DLL Result | loadFromPly (ConstStringBuffer filePath)=0 |
virtual FLE_DLL Result | decimateByMaxPointCount (int targetPointCount)=0 |
virtual FLE_DLL Result | decimateByMaxPointCountOctree (unsigned int maxPointCount)=0 |
virtual FLE_DLL Result | decimateByPointsDistance (double distance)=0 |
virtual FLE_DLL Result | densificateByMaxPointCount (int targetPointCount)=0 |
virtual FLE_DLL Result | projectOnRegularGrid (double gridSpacing, double radius, StandardAxis axis)=0 |
Public Member Functions inherited from FlowEngine::NamedObjectInterface | |
virtual FLE_DLL | ~NamedObjectInterface ()=default |
Default virtual destructor. | |
virtual FLE_DLL Size | getNameLength () const =0 |
virtual FLE_DLL Result | getName (StringBuffer outName) const =0 |
virtual FLE_DLL Result | setName (ConstStringBuffer name)=0 |
Stores a simple Dense Point Cloud object for the FlowEngine interface.
Nothing needed in input. Everything will be filled by FlowEngine during MVS Computation.
|
virtualdefault |
Default virtual destructor.
|
pure virtual |
Copy data from another Stereo Point cloud.
[in] | inStereoPoints | the stereo point cloud in input |
|
pure virtual |
Copy all point positions. This function is not available in the free version of the SDK.
[in,out] | outData | a buffer large enough to countain getPointCount() elements of Point3 |
|
pure virtual |
Decimates the point cloud to reach a certain amount of points.
[in] | targetPointCount | the number of points the point cloud will have after the decimation. If the targetPointCount is >= getPointCount() the function does nothing. |
|
pure virtual |
Decimates the point cloud by supplying a maximum point count (using octree)
[in] | maxPointCount | the number of points the point cloud will have after the decimation. If the targetPointCount is >= getPointCount() the function does nothing. |
|
pure virtual |
Decimates the point cloud by supplying the points maximum distance.
[in] | distance | the maximum distance allowed between points. |
|
pure virtual |
Densificates the point cloud up to the specified point count
[in] | targetPointCount | the number of points the point cloud will have after the densification. If the targetPointCount is < getPointCount() the function does nothing. |
|
pure virtual |
|
pure virtual |
Returns the color of the point at index idx
. This function is not available in the free version of the SDK.
[in] | idx | the index of the position to retrieve. Must be in the range [0, getPointCount()) |
[out] | outColor | the retrieved point color |
|
pure virtual |
|
pure virtual |
Returns the position of the point at index idx
. This function is not available in the free version of the SDK.
[in] | idx | the index of the position to retrieve. Must be in the range [0, getPointCount()) |
[out] | outNormal | the retrieved point normal |
|
pure virtual |
Returns the position of the point at index idx
. This function is not available in the free version of the SDK.
[in] | idx | the index of the position to retrieve. Must be in the range [0, getPointCount()) |
[out] | outPosition | the retrieved point position |
|
pure virtual |
Query visibility information about a point.
[in] | pointIndex | the point to query for visibility info. Must be in the range [0, getPointCount()) |
[in] | visibilityIndex | the index of the visibility entry. Must be in the range [0, getPointVisibilityCount( pointIndex )) |
[in,out] | outCamera | the Camera object to fill with the information, |
outCamera
is filled with the visibility information queried.outCamera
is not a valid Camera object.pointIndex
is not in the valid range.visibilityInfo
is not in the valid range.
|
pure virtual |
Query the number of visibility information present in a point.
[in] | pointIndex | the index of the point to query for visibility count. Must be in the range [0, getPointCount()) |
pointIndex
.
|
pure virtual |
|
pure virtual |
Initialize an externally imported point cloud and perform the following internal operation: Seed Points setting, points reindexing, duplicate points removal, and hidden bubble view visibility setting (optional).
[in] | logListener | log interface for log output |
[in] | seedPoints | Number of seeds points. If zero, keeps the existing number (likely all the points) |
[in] | bubbleViewCameras | (optional) bubble view camera list. The vector can be empty. |
|
pure virtual |
Load the point cloud from a PLY file
[in] | filePath | a string buffer containing the UTF-8 encoded path to the PLY file. |
filePath
is not a valid string buffer.filePath
does not point to an existing file.filePath
does not point to a valid PLY file or if there was a generic IO error.
|
pure virtual |
Merge this point cloud data with others. All dense point clouds involved in the process must have valid visibility. Other stereo point clouds are left untouched.
[in] | others | a buffer of StereoPointCloudInterface |
[in] | lastMerge | set to true on the last merge operation to close a merging sequence. Forgetting to set lastMerge to true on the last merge operation will leave the StereoPointCloud to an undefined state. |
others
is not a valid buffer or contains invalid instances.
|
pure virtual |
Projects the points on a regular grid,
gridSpacing | the length of a grid side. Must be greater than 0. |
radius | the neighbor searching limit. Specify 0 for no limit. |
axis | the grid up vector. |
gridSpacing
is not greater than 0.
|
pure virtual |
Removes one point from this stereo point cloud.
[in] | index | the index of the point to be removed. Must be in the range [0, getPointCount()). |
index
is not in the valid range.
|
pure virtual |
Removes one or more points from this stereo point cloud.
[in] | indexes | a buffer of point indexes to be removed. Each index must be in the range [0, getPointCount()). |
indexes
is not a valid buffer.indexes
is not in the valid range.
|
pure virtual |
Replaces this stereo point cloud visibility.
[in] | cameras | a buffer of Camera(s) that will replace the internal ones. New cameras should match the number, the name and the dimensions of the current ones in this object. |
cameras
is not a valid buffer or its contents do not satisfy the required constraints.
|
pure virtual |
Reset this stereo point cloud object. All the properties will be invalidated.
[in] | vertexData | a buffer of Point3(s). Must contain at least 3 points. |
[in] | colorData | (optional) buffer of Color(s). When not specified or its length differs from vertexData's, points are colored white (255, 255, 255) and can be recomputed with FlowEngineInterface::recomputeVisibility. |
[in] | normalData | (optional) buffer of Normal(s). Can be recomputed with FlowEngineInterface::recomputeVisibility. |
vertexData
is not a valid buffer or its length is less than 3.normalData
is not a valid buffer or its length is less than 1.colorData
is a valid buffer but its length is different from vertexData
.
|
pure virtual |
Reset the stereo point cloud. All the properties will be invalidated, and you must refill the vector with the manual set functions.
[in] | vertexCount | the number of vertices |
|
pure virtual |
Save the point cloud to PLY file.
|
pure virtual |
Change the color of a point
[in] | idx | the point index. Must be in the range [0, getPointCount()) |
[in] | color | the new point color |
idx
is not in the valid range.
|
pure virtual |
Change the normal of a point
[in] | idx | the point index. Must be in the range [0, getPointCount()) |
[in] | normal | the new point normal |
idx
is not in the valid range.
|
pure virtual |
Change the position of a point
[in] | idx | the point index. Must be in the range [0, getPointCount()) |
[in] | position | the new point position |
idx
is not in the valid range.
|
pure virtual |
Transforms every point in the point cloud with a SRT matrix.
[in] | transform | a buffer of doubles representing the 4x4 transform matrix that will be applied to every point. |
transform
is not a valid buffer or is not 16 doubles long.