FlowEngine 7.517
Photogrammetry Software Development Kit
Loading...
Searching...
No Matches
StereoPointCloudInterface.h
Go to the documentation of this file.
1/*
2 *
3 * C@@o ____ _____ __ _
4 * oC8@@@@@@@o |___ \| __ \ / _| |
5 * o@@@@@@@@@@@@O __) | | | | |_| | _____ __
6 * O@O 8@@@@@@@@@O |__ <| | | | _| |/ _ \ \ /\ / /
7 * o@@@@@@@O OOOOOCo ___) | |__| | | | | (_) \ V V /
8 * C@@@@@@@@@@@@Oo |____/|_____/|_| |_|\___/ \_/\_/
9 * o8@@@@@@@@@@@@@@@@8OOCCCC
10 * oO@@@@@@@@@@@@@@@@@@@o 3Dflow s.r.l. - www.3dflow.net
11 * oO8@@@@@@@@@@@@o Copyright 2022
12 * oO88@@@@@@@@8OCo All Rights Reserved
13 * O@@@@@@@@@@@@@@@@@@@@@@@@@8OCCoooooooCCo
14 * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O
15 * @@@Oo oO8@@@@@@@@@@@@@@@@8
16 *
17 */
18
19#ifndef FLOWENGINESTEREODENSEPOINTCLOUD_H
20#define FLOWENGINESTEREODENSEPOINTCLOUD_H
21
22#pragma once
23
24#include "CommonDef.h"
25
27
29
30namespace FlowEngine
31{
32 class CameraInterface;
33
38 {
39 public:
40
42 FLE_DLL virtual ~StereoPointCloudInterface() = default;
43
44 public:
45
47 FLE_DLL virtual Index getPointCount() const = 0;
48
50 FLE_DLL virtual Index getSeedPointCount() const = 0;
51
57 FLE_DLL virtual Result getPointPosition( Index idx, Point3 &outPosition ) const = 0;
58
64 FLE_DLL virtual Result getPointNormal( Index idx, Normal &outNormal ) const = 0;
65
71 FLE_DLL virtual Result getPointColor( Index idx, Color &outColor ) const = 0;
72
77 FLE_DLL virtual Index getPointVisibilityCount( Index pointIndex ) const = 0;
78
93 FLE_DLL virtual Result getPointVisibility( Index pointIndex,
94 Index visibilityIndex,
95 CameraInterface &outCamera ) const = 0;
96
98 FLE_DLL virtual double getMeanPointDistance() const = 0;
99
100 public:
101
115 FLE_DLL virtual Result mergeWith( ConstBuffer< StereoPointCloudInterface * > others, bool lastMerge = true ) = 0;
116
122 FLE_DLL virtual Result copyFrom( const StereoPointCloudInterface &inStereoPoints ) = 0;
123
128 FLE_DLL virtual Result reset( Size vertexCount ) = 0;
129
148 FLE_DLL virtual Result reset( ConstBuffer< Point3 > vertexData,
149 ConstBuffer< Color > colorData,
150 ConstBuffer< Normal > normalData ) = 0;
151
164
171 FLE_DLL virtual Result setPointPosition( Index idx, const Point3 &position ) = 0;
172
179 FLE_DLL virtual Result setPointNormal( Index idx, const Normal &normal ) = 0;
180
187 FLE_DLL virtual Result setPointColor( Index idx, const Color &color ) = 0;
188
195
204 FLE_DLL virtual Result initializeSeeds( LogListenerInterface &logListener, Index seedPoints, Buffer< CameraInterface * > bubbleViewCameras ) = 0;
205
215 FLE_DLL virtual Result removePoint( Index index ) = 0;
216
228 FLE_DLL virtual Result removePoints( ConstBuffer< Index > indexes ) = 0;
229
230 public:
231
235 FLE_DLL virtual Result copyPointsPositions( Buffer< Point3 > outData ) const = 0;
236
237 public:
238
240 FLE_DLL virtual Result saveToPly( ConstStringBuffer filePath,
241 bool saveColors = true,
242 bool saveNormals = true,
243 bool useBinaryEncoding = true ) const = 0;
244
254 FLE_DLL virtual Result loadFromPly( ConstStringBuffer filePath ) = 0;
255
256 public:
257
265 FLE_DLL virtual Result decimateByMaxPointCount( int targetPointCount ) = 0;
266
274 FLE_DLL virtual Result decimateByMaxPointCountOctree( unsigned int maxPointCount ) = 0;
275
282 FLE_DLL virtual Result decimateByPointsDistance( double distance ) = 0;
283
293 FLE_DLL virtual Result densificateByMaxPointCount( int targetPointCount ) = 0;
294
305 FLE_DLL virtual Result projectOnRegularGrid( double gridSpacing, double radius, StandardAxis axis ) = 0;
306 };
307
311
315}
316
317#endif
#define FLOWENGINE_FACTORY
Definition: CommonDef.h:32
Stores a camera object to feed the Structure from Motion parameters.
Definition: CameraInterface.h:38
Pure virtual Log Listener interface.
Definition: LogListenerInterface.h:41
Interface for all FlowEngine objects with an editable name.
Definition: NamedObjectInterface.h:30
Stores a simple Dense Point Cloud object for the FlowEngine interface.
Definition: StereoPointCloudInterface.h:38
virtual FLE_DLL Result setPointPosition(Index idx, const Point3 &position)=0
virtual FLE_DLL Result transform(ConstBuffer< double > transform)=0
virtual FLE_DLL Result removePoints(ConstBuffer< Index > indexes)=0
virtual FLE_DLL Result replaceVisibility(ConstBuffer< CameraInterface * > cameras)=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 Index getSeedPointCount() const =0
virtual FLE_DLL Result decimateByMaxPointCount(int targetPointCount)=0
virtual FLE_DLL Result copyFrom(const StereoPointCloudInterface &inStereoPoints)=0
virtual FLE_DLL ~StereoPointCloudInterface()=default
Default virtual destructor.
virtual FLE_DLL Result reset(ConstBuffer< Point3 > vertexData, ConstBuffer< Color > colorData, ConstBuffer< Normal > normalData)=0
virtual FLE_DLL Result getPointColor(Index idx, Color &outColor) const =0
virtual FLE_DLL Result densificateByMaxPointCount(int targetPointCount)=0
virtual FLE_DLL Result copyPointsPositions(Buffer< Point3 > outData) const =0
virtual FLE_DLL Result projectOnRegularGrid(double gridSpacing, double radius, StandardAxis axis)=0
virtual FLE_DLL Result decimateByPointsDistance(double distance)=0
virtual FLE_DLL Result removePoint(Index index)=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 Result mergeWith(ConstBuffer< StereoPointCloudInterface * > others, bool lastMerge=true)=0
virtual FLE_DLL Result loadFromPly(ConstStringBuffer filePath)=0
virtual FLE_DLL Index getPointCount() 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 reset(Size vertexCount)=0
virtual FLE_DLL Result initializeSeeds(LogListenerInterface &logListener, Index seedPoints, Buffer< CameraInterface * > bubbleViewCameras)=0
virtual FLE_DLL Result decimateByMaxPointCountOctree(unsigned int maxPointCount)=0
virtual FLE_DLL Result setPointColor(Index idx, const Color &color)=0
virtual FLE_DLL Result setPointNormal(Index idx, const Normal &normal)=0
virtual FLE_DLL double getMeanPointDistance() const =0
Definition: BoundingBoxInterface.cpp:26
StereoPointCloudInterface * CreateStereoPointCloud()
Definition: StereoPointCloudInterface.cpp:27
std::ptrdiff_t Index
Index type.
Definition: CommonDef.h:100
void DestroyStereoPointCloud(StereoPointCloudInterface *stereoPointCloud)
Definition: StereoPointCloudInterface.cpp:32
StandardAxis
enumerates the standard axes
Definition: CommonDef.h:492
std::size_t Size
Size type.
Definition: CommonDef.h:103
Result
Enumerates possible results generated by FlowEngine.
Definition: CommonDef.h:45
Holds a (mutable) non_owning pointer and a size Used to marshal memory buffers as arguments in a safe...
Definition: CommonDef.h:118
a packed RGB color
Definition: CommonDef.h:411
Specialization for a const buffer characters.
Definition: CommonDef.h:296
Holds a (non mutable) non_owning pointer and a count Used to marshal memory buffers as arguments in a...
Definition: CommonDef.h:191
a normal
Definition: CommonDef.h:398
a three dimensional point
Definition: CommonDef.h:375