/usr/include/libwildmagic/Wm5Intersector1.h is in libwildmagic-dev 5.13-1+b2.
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 | // 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.0.1 (2010/10/01)
#ifndef WM5INTERSECTOR1_H
#define WM5INTERSECTOR1_H
#include "Wm5MathematicsLIB.h"
#include "Wm5Math.h"
namespace Wm5
{
template <typename Real>
class WM5_MATHEMATICS_ITEM Intersector1
{
public:
// A class for intersection of intervals [u0,u1] and [v0,v1]. The end
// points must be ordered: u0 <= u1 and v0 <= v1. Values of MAX_REAL
// and -MAX_REAL are allowed, and degenerate intervals are allowed:
// u0 = u1 or v0 = v1.
Intersector1 (Real u0, Real u1, Real v0, Real v1);
Intersector1 (Real u[2], Real v[2]);
~Intersector1 ();
// Object access.
Real GetU (int i) const;
Real GetV (int i) const;
// Static intersection queries.
bool Test ();
bool Find ();
// Dynamic intersection queries. The Find query produces a set of first
// contact.
bool Test (Real tmax, Real speedU, Real speedV);
bool Find (Real tmax, Real speedU, Real speedV);
// The time at which two intervals are in first/last contact for the
// dynamic intersection queries.
Real GetFirstTime () const;
Real GetLastTime () const;
// Information about the intersection set. The number of intersections
// is 0 (intervals do not overlap), 1 (intervals are just touching), or
// 2 (intervals intersect in an inteval).
int GetNumIntersections () const;
Real GetIntersection (int i) const;
protected:
// The intervals to intersect.
Real mU[2], mV[2];
// Information about the intersection set.
Real mFirstTime, mLastTime;
int mNumIntersections;
Real mIntersections[2];
};
typedef Intersector1<float> Intersector1f;
typedef Intersector1<double> Intersector1d;
}
#endif
|