FlowEngine 7.517
Photogrammetry Software Development Kit
Loading...
Searching...
No Matches
BoundingBoxInterface.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 FLOWENGINEBOUNDINGBOX_H
20#define FLOWENGINEBOUNDINGBOX_H
21
22#pragma once
23
24#include "CommonDef.h"
25
26namespace FlowEngine
27{
28 class SparsePointCloudInterface;
29 class CameraInterface;
30
35 {
36 public:
37
39 FLE_DLL virtual ~BoundingBoxInterface() = default;
40
41 public:
42
45 FLE_DLL virtual void getTranslation( Point3 &outTranslation ) const = 0;
46
49 FLE_DLL virtual void getHalfSize( Point3 &outHalfSize ) const = 0;
50
53 FLE_DLL virtual void getOrientation( Quaternion &outOrientation ) const = 0;
54
55 public:
56
59 FLE_DLL virtual void setTranslation( const Point3 &translation ) = 0;
60
63 FLE_DLL virtual void setHalfSize( const Point3 &halfSize ) = 0;
64
67 FLE_DLL virtual void setOrientation( const Quaternion &orientation ) = 0;
68
69 public:
70
82 FLE_DLL virtual Result computeFromPoints( const SparsePointCloudInterface &pointCloud, bool useOutlierRejection, float additionalExpansionPerc = 0.03f ) = 0;
83
95 FLE_DLL virtual Result computeFromCameras( const SparsePointCloudInterface &pointCloud, Buffer< CameraInterface * > inCameras, float additionalExpansionPerc = 0.1f ) = 0;
96
97 public:
98
105 FLE_DLL virtual Result exportToXml( ConstStringBuffer filePath ) const = 0;
106
116 FLE_DLL virtual Result importFromXml( ConstStringBuffer filePath ) = 0;
117 };
118
122
126}
127
128#endif
#define FLOWENGINE_FACTORY
Definition: CommonDef.h:32
An oriented bounding box.
Definition: BoundingBoxInterface.h:35
virtual FLE_DLL void getTranslation(Point3 &outTranslation) const =0
virtual FLE_DLL void setOrientation(const Quaternion &orientation)=0
virtual FLE_DLL void setHalfSize(const Point3 &halfSize)=0
virtual FLE_DLL Result exportToXml(ConstStringBuffer filePath) const =0
virtual FLE_DLL Result computeFromPoints(const SparsePointCloudInterface &pointCloud, bool useOutlierRejection, float additionalExpansionPerc=0.03f)=0
virtual FLE_DLL void setTranslation(const Point3 &translation)=0
virtual FLE_DLL ~BoundingBoxInterface()=default
Default virtual destructor.
virtual FLE_DLL Result computeFromCameras(const SparsePointCloudInterface &pointCloud, Buffer< CameraInterface * > inCameras, float additionalExpansionPerc=0.1f)=0
virtual FLE_DLL Result importFromXml(ConstStringBuffer filePath)=0
virtual FLE_DLL void getHalfSize(Point3 &outHalfSize) const =0
virtual FLE_DLL void getOrientation(Quaternion &outOrientation) const =0
Stores a PointCloud object.
Definition: SparsePointCloudInterface.h:36
Definition: BoundingBoxInterface.cpp:26
void DestroyBoundingBox(BoundingBoxInterface *boundingBox)
Definition: BoundingBoxInterface.cpp:32
BoundingBoxInterface * CreateBoundingBox()
Definition: BoundingBoxInterface.cpp:27
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
Specialization for a const buffer characters.
Definition: CommonDef.h:296
a three dimensional point
Definition: CommonDef.h:375
a Quaternion Holds an axis and an angle
Definition: CommonDef.h:467