36 #include <qmessagebox.h>
40 #include <unordered_map>
172 float min_planarity = 0.75f);
245 std::vector<std::deque<int>>
256 void set(
int node_index,
int node_total_cost, Node* prev_node) {
258 total_cost = node_total_cost;
259 previous = prev_node;
264 Node* previous =
nullptr;
270 bool operator()(
Node* t1,
Node* t2) {
276 return t1->total_cost > t2->total_cost;
286 float m_maxIterations;
302 void updateMetadata();
Vector3Tpl< float > CCVector3f
Float 3D Vector.
int64_t CV_CLASS_ENUM
Type of object type flags (64 bits)
Generic handle to any of the 8 types of E57 element objects.
Hierarchical CLOUDVIEWER Object.
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
bool hasNormals() const override
Returns whether normals are enabled or not.
const CCVector3 & getPointNormal(unsigned pointIndex) const override
Returns normal corresponding to a given point.
int getSegmentCostScalar(int p1, int p2)
std::vector< int > m_previous
virtual CV_CLASS_ENUM getClassID() const override
Returns class ID.
int getSegmentCostDist(int p1, int p2)
std::deque< int > optimizeSegment(int start, int end, int offset=0)
void pushWaypoint(int pointId)
std::vector< int > m_waypoints
int getSegmentCostScalarInv(int p1, int p2)
int insertWaypoint(int pointId)
ccFitPlane * fitPlane(int surface_effect_tolerance=10, float min_planarity=0.75f)
size_t waypoint_count() const
void bakePathToScalarField()
int getSegmentCostRGB(int p1, int p2)
void deleteWaypoint(int pointId)
static bool isTrace(ccHObject *object)
int getClosestWaypoint(int pointID)
void buildCurvatureCost(QWidget *parent)
bool isGradientPrecomputed()
CCVector3f getPointNormal(int pointIdx)
int getSegmentCostLight(int p1, int p2)
int getSegmentCostGrad(int p1, int p2, float search_r)
int getSegmentCostDark(int p1, int p2)
int getSegmentCost(int p1, int p2)
virtual void drawMeOnly(CC_DRAW_CONTEXT &context) override
Draws the entity only (not its children)
std::vector< std::deque< int > > m_trace
void buildGradientCost(QWidget *parent)
ccTrace(ccPointCloud *associatedCloud)
float calculateOptimumSearchRadius()
bool isCurvaturePrecomputed()
bool optimizePath(int maxIterations=1000000)
int getSegmentCostCurve(int p1, int p2)
std::vector< PointDescriptor > NeighboursSet
A set of neighbours.
virtual unsigned getPointGlobalIndex(unsigned localIndex) const
Structure used during nearest neighbour search.