Merge branch 'mathias/math'
This commit is contained in:
commit
054b1bb46c
3 changed files with 4 additions and 50 deletions
|
@ -39,6 +39,7 @@
|
|||
#include <simgear/misc/sgstream.hxx>
|
||||
#include <simgear/misc/strutils.hxx>
|
||||
#include <simgear/structure/exception.hxx>
|
||||
#include <simgear/bucket/newbucket.hxx>
|
||||
|
||||
#include <string>
|
||||
|
||||
|
|
|
@ -30,11 +30,10 @@
|
|||
#include <boost/algorithm/string/case_conv.hpp>
|
||||
#include <boost/algorithm/string/predicate.hpp>
|
||||
|
||||
#include <simgear/math/sg_geodesy.hxx>
|
||||
#include <simgear/timing/timestamp.hxx>
|
||||
#include <simgear/debug/logstream.hxx>
|
||||
#include <simgear/structure/exception.hxx>
|
||||
#include <simgear/math/SGBox.hxx>
|
||||
#include <simgear/math/SGGeometry.hxx>
|
||||
|
||||
#include "positioned.hxx"
|
||||
|
||||
|
@ -55,27 +54,6 @@ namespace Octree
|
|||
const double LEAF_SIZE = SG_NM_TO_METER * 8.0;
|
||||
const double LEAF_SIZE_SQR = LEAF_SIZE * LEAF_SIZE;
|
||||
|
||||
typedef SGBox<double> SGBoxd;
|
||||
|
||||
template<typename T1, typename T2>
|
||||
inline bool
|
||||
intersects(const SGVec3<T1>& v, const SGBox<T2>& box)
|
||||
{
|
||||
if (v[0] < box.getMin()[0])
|
||||
return false;
|
||||
if (box.getMax()[0] < v[0])
|
||||
return false;
|
||||
if (v[1] < box.getMin()[1])
|
||||
return false;
|
||||
if (box.getMax()[1] < v[1])
|
||||
return false;
|
||||
if (v[2] < box.getMin()[2])
|
||||
return false;
|
||||
if (box.getMax()[2] < v[2])
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Decorate an object with a double value, and use that value to order
|
||||
* items, for the purpoises of the STL algorithms
|
||||
|
@ -156,28 +134,11 @@ public:
|
|||
|
||||
double distSqrToNearest(const SGVec3d& aPos) const
|
||||
{
|
||||
return distSqr(aPos, getClosestPoint(aPos));
|
||||
return distSqr(aPos, _box.getClosestPoint(aPos));
|
||||
}
|
||||
|
||||
virtual void insert(FGPositioned* aP) = 0;
|
||||
|
||||
SGVec3d getClosestPoint(const SGVec3d& aPos) const
|
||||
{
|
||||
SGVec3d r;
|
||||
|
||||
for (unsigned int i=0;i<3; ++i) {
|
||||
if (aPos[i] < _box.getMin()[i]) {
|
||||
r[i] = _box.getMin()[i];
|
||||
} else if (aPos[i] > _box.getMax()[i]) {
|
||||
r[i] = _box.getMax()[i];
|
||||
} else {
|
||||
r[i] = aPos[i];
|
||||
}
|
||||
} // of axis iteration
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
virtual void visit(const SGVec3d& aPos, double aCutoff,
|
||||
FGPositioned::Filter* aFilter,
|
||||
FindNearestResults& aResults, FindNearestPQueue&) = 0;
|
||||
|
@ -728,12 +689,6 @@ FGPositioned::createUserWaypoint(const std::string& aIdent, const SGGeod& aPos)
|
|||
return new FGPositioned(WAYPOINT, aIdent, aPos, true);
|
||||
}
|
||||
|
||||
SGBucket
|
||||
FGPositioned::bucket() const
|
||||
{
|
||||
return SGBucket(mPosition);
|
||||
}
|
||||
|
||||
SGVec3d
|
||||
FGPositioned::cart() const
|
||||
{
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
#include <vector>
|
||||
|
||||
#include <simgear/structure/SGSharedPtr.hxx>
|
||||
#include <simgear/bucket/newbucket.hxx>
|
||||
#include <simgear/math/SGMath.hxx>
|
||||
|
||||
class FGPositioned;
|
||||
|
||||
|
@ -88,8 +88,6 @@ public:
|
|||
*/
|
||||
SGVec3d cart() const;
|
||||
|
||||
SGBucket bucket() const;
|
||||
|
||||
double latitude() const
|
||||
{ return mPosition.getLatitudeDeg(); }
|
||||
|
||||
|
|
Loading…
Reference in a new issue