/usr/include/libwildmagic/Wm5IntrEllipsoid3Ellipsoid3.h is in libwildmagic-dev 5.13-1ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | // Geometric Tools, LLC
// Copyright (c) 1998-2014
// Distributed under the Boost Software License, Version 1.0.
// http://www.boost.org/LICENSE_1_0.txt
// http://www.geometrictools.com/License/Boost/LICENSE_1_0.txt
//
// File Version: 5.5.0 (2010/10/15)
#ifndef WM5INTRELLIPSOID3ELLIPSOID3_H
#define WM5INTRELLIPSOID3ELLIPSOID3_H
#include "Wm5MathematicsLIB.h"
#include "Wm5Intersector.h"
#include "Wm5Ellipsoid3.h"
#include "Wm5Polynomial1.h"
namespace Wm5
{
template <typename Real>
class WM5_MATHEMATICS_ITEM IntrEllipsoid3Ellipsoid3
: public Intersector<Real,Vector3<Real> >
{
public:
IntrEllipsoid3Ellipsoid3 (const Ellipsoid3<Real>& ellipsoid0,
const Ellipsoid3<Real>& ellipsoid1);
// Object access.
const Ellipsoid3<Real>& GetEllipsoid0 () const;
const Ellipsoid3<Real>& GetEllipsoid1 () const;
// A form of test query. The ellipsoids are separated, intersecting
// (at points or curves), ellipsoid0 is strictly contained in ellipsoid1,
// or ellipsoid1 is strictly contained in ellipsoid0.
enum Classification
{
EC_ELLIPSOIDS_SEPARATED,
EC_ELLIPSOIDS_INTERSECTING,
EC_ELLIPSOID0_CONTAINS_ELLIPSOID1,
EC_ELLIPSOID1_CONTAINS_ELLIPSOID0
};
Classification GetClassification () const;
private:
// Support functions for GetClassification().
static void BisectF (Real d0, Real d1, Real d2, Real d0c0, Real d1c1,
Real d2c2, Real smin, Real fmin, Real smax, Real fmax, Real& s,
Real& f);
static void BisectDF (Real d0, Real d1, Real d2, Real d0c0, Real d1c1,
Real d2c2, Real smin, Real dfmin, Real smax, Real dfmax, Real& s,
Real& df);
static void GetRoots (Real d0, Real d1, Real d2, Real c0, Real c1,
Real c2, int& numRoots, Real* roots);
static void BisectF (Real d0, Real d1, Real d0c0, Real d1c1, Real smin,
Real fmin, Real smax, Real fmax, Real& s, Real& f);
static void BisectDF (Real d0, Real d1, Real d0c0, Real d1c1, Real smin,
Real dfmin, Real smax, Real dfmax, Real& s, Real& df);
static void GetRoots (Real d0, Real d1, Real c0, Real c1, int& numRoots,
Real* roots);
static void GetRoots (Real d0, Real c0, int& numRoots, Real* roots);
// The objects to intersect.
const Ellipsoid3<Real>* mEllipsoid0;
const Ellipsoid3<Real>* mEllipsoid1;
};
typedef IntrEllipsoid3Ellipsoid3<float> IntrEllipsoid3Ellipsoid3f;
typedef IntrEllipsoid3Ellipsoid3<double> IntrEllipsoid3Ellipsoid3d;
}
#endif
|