summaryrefslogtreecommitdiff
path: root/thirdparty/thekla_atlas/nvmesh/param/AtlasBuilder.h
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/thekla_atlas/nvmesh/param/AtlasBuilder.h')
-rw-r--r--thirdparty/thekla_atlas/nvmesh/param/AtlasBuilder.h111
1 files changed, 0 insertions, 111 deletions
diff --git a/thirdparty/thekla_atlas/nvmesh/param/AtlasBuilder.h b/thirdparty/thekla_atlas/nvmesh/param/AtlasBuilder.h
deleted file mode 100644
index f25c724f7e..0000000000
--- a/thirdparty/thekla_atlas/nvmesh/param/AtlasBuilder.h
+++ /dev/null
@@ -1,111 +0,0 @@
-// This code is in the public domain -- castano@gmail.com
-
-#pragma once
-#ifndef NV_MESH_ATLASBUILDER_H
-#define NV_MESH_ATLASBUILDER_H
-
-#include "Atlas.h"
-
-#include "nvmath/Vector.h"
-#include "nvmath/Random.h"
-#include "nvmesh/nvmesh.h"
-
-#include "nvcore/Array.h"
-#include "nvcore/BitArray.h"
-
-
-
-namespace nv
-{
- namespace HalfEdge { class Mesh; }
-
- struct ChartBuildData;
-
- struct AtlasBuilder
- {
- AtlasBuilder(const HalfEdge::Mesh * m);
- ~AtlasBuilder();
-
- void markUnchartedFaces(const Array<uint> & unchartedFaces);
-
- void computeShortestPaths();
-
- void placeSeeds(float threshold, uint maxSeedCount);
- void createRandomChart(float threshold);
-
- void addFaceToChart(ChartBuildData * chart, uint f, bool recomputeProxy=false);
-
- bool growCharts(float threshold, uint faceCount);
- bool growChart(ChartBuildData * chart, float threshold, uint faceCount);
-
- void resetCharts();
-
- void updateCandidates(ChartBuildData * chart, uint face);
-
- void updateProxies();
- void updateProxy(ChartBuildData * chart);
-
- bool relocateSeeds();
- bool relocateSeed(ChartBuildData * chart);
-
- void updatePriorities(ChartBuildData * chart);
-
- float evaluatePriority(ChartBuildData * chart, uint face);
- float evaluateProxyFitMetric(ChartBuildData * chart, uint face);
- float evaluateDistanceToBoundary(ChartBuildData * chart, uint face);
- float evaluateDistanceToSeed(ChartBuildData * chart, uint face);
- float evaluateRoundnessMetric(ChartBuildData * chart, uint face, float newBoundaryLength, float newChartArea);
- float evaluateStraightnessMetric(ChartBuildData * chart, uint face);
-
- float evaluateNormalSeamMetric(ChartBuildData * chart, uint f);
- float evaluateTextureSeamMetric(ChartBuildData * chart, uint f);
- float evaluateSeamMetric(ChartBuildData * chart, uint f);
-
- float evaluateChartArea(ChartBuildData * chart, uint f);
- float evaluateBoundaryLength(ChartBuildData * chart, uint f);
- Vector3 evaluateChartNormalSum(ChartBuildData * chart, uint f);
- Vector3 evaluateChartCentroidSum(ChartBuildData * chart, uint f);
-
- Vector3 computeChartCentroid(const ChartBuildData * chart);
-
-
- void fillHoles(float threshold);
- void mergeCharts();
-
- // @@ Cleanup.
- struct Candidate {
- uint face;
- ChartBuildData * chart;
- float metric;
- };
-
- const Candidate & getBestCandidate() const;
- void removeCandidate(uint f);
- void updateCandidate(ChartBuildData * chart, uint f, float metric);
-
- void mergeChart(ChartBuildData * owner, ChartBuildData * chart, float sharedBoundaryLength);
-
-
- uint chartCount() const { return chartArray.count(); }
- const Array<uint> & chartFaces(uint i) const;
-
- const HalfEdge::Mesh * mesh;
- uint facesLeft;
- Array<int> faceChartArray;
- Array<ChartBuildData *> chartArray;
- Array<float> shortestPaths;
-
- Array<float> edgeLengths;
- Array<float> faceAreas;
-
- Array<Candidate> candidateArray; //
- Array<uint> faceCandidateArray; // Map face index to candidate index.
-
- MTRand rand;
-
- SegmentationSettings settings;
- };
-
-} // nv namespace
-
-#endif // NV_MESH_ATLASBUILDER_H