aboutsummaryrefslogtreecommitdiff
path: root/dep/g3dlite/source/MeshAlgWeld.cpp
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2014-08-22 16:58:23 +0200
committerjackpoz <giacomopoz@gmail.com>2014-08-22 21:00:56 +0200
commit5e8277e923c5545a15bae7c740ab6afaa597a59f (patch)
tree4cf5212c080588a7e868ee60134fc7fff51e400a /dep/g3dlite/source/MeshAlgWeld.cpp
parenta63aa858dcb400eafb97eed1f590e34c27d934a4 (diff)
Core/Dependencies: Update G3D to v9.0 r4036
Diffstat (limited to 'dep/g3dlite/source/MeshAlgWeld.cpp')
-rw-r--r--dep/g3dlite/source/MeshAlgWeld.cpp27
1 files changed, 14 insertions, 13 deletions
diff --git a/dep/g3dlite/source/MeshAlgWeld.cpp b/dep/g3dlite/source/MeshAlgWeld.cpp
index 6067f17c2fb..b1e602f9566 100644
--- a/dep/g3dlite/source/MeshAlgWeld.cpp
+++ b/dep/g3dlite/source/MeshAlgWeld.cpp
@@ -40,18 +40,18 @@ public:
Array<int>& toOld;
/** Must be less than one grid cell, not checked */
- const double radius;
+ const float radius;
/** (oldVertexArray[i] - offset) * scale is on the range [0, 1] */
Vector3 offset;
Vector3 scale;
- Welder(
- const Array<Vector3>& _oldVertexArray,
- Array<Vector3>& _newVertexArray,
- Array<int>& _toNew,
- Array<int>& _toOld,
- double _radius);
+ Welder
+ (const Array<Vector3>& _oldVertexArray,
+ Array<Vector3>& _newVertexArray,
+ Array<int>& _toNew,
+ Array<int>& _toOld,
+ float _radius);
/**
Computes the grid index from an ordinate.
@@ -73,6 +73,7 @@ template<> struct HashTrait<G3D::_internal::Welder::List*> {
static size_t hashCode(const G3D::_internal::Welder::List* key) { return reinterpret_cast<size_t>(key); }
};
+
namespace G3D {
namespace _internal {
@@ -81,7 +82,7 @@ Welder::Welder(
Array<Vector3>& _newVertexArray,
Array<int>& _toNew,
Array<int>& _toOld,
- double _radius) :
+ float _radius) :
oldVertexArray(_oldVertexArray),
newVertexArray(_newVertexArray),
toNew(_toNew),
@@ -102,10 +103,10 @@ Welder::Welder(
scale = maxBound - minBound;
for (int i = 0; i < 3; ++i) {
// The model might have zero extent along some axis
- if (fuzzyEq(scale[i], 0.0)) {
+ if (fuzzyEq(scale[i], 0.0f)) {
scale[i] = 1.0;
} else {
- scale[i] = 1.0 / scale[i];
+ scale[i] = 1.0f / scale[i];
}
}
}
@@ -204,10 +205,10 @@ void MeshAlg::computeWeld(
Array<Vector3>& newVertexArray,
Array<int>& toNew,
Array<int>& toOld,
- double radius) {
+ float radius) {
- _internal::Welder welder(oldVertexArray, newVertexArray, toNew, toOld, radius);
- welder.weld();
+ shared_ptr<_internal::Welder> welder = shared_ptr<_internal::Welder> (new _internal::Welder(oldVertexArray, newVertexArray, toNew, toOld, radius));
+ welder->weld();
}
} // G3D namespace