/usr/include/libwildmagic/Wm5VEManifoldMesh.h is in libwildmagic-dev 5.13-1ubuntu1.
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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | // 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 WM5VEMANIFOLDMESH_H
#define WM5VEMANIFOLDMESH_H
#include "Wm5MathematicsLIB.h"
namespace Wm5
{
class WM5_MATHEMATICS_ITEM VEManifoldMesh
{
public:
// Vertex data types.
class Vertex;
typedef Vertex* VPtr;
typedef const Vertex* VCPtr;
typedef VPtr (*VCreator)(int);
typedef std::map<int,Vertex*> VMap;
typedef VMap::iterator VMapIterator;
typedef VMap::const_iterator VMapCIterator;
// Edge data types.
class Edge;
typedef Edge* EPtr;
typedef const Edge* ECPtr;
typedef EPtr (*ECreator)(int,int);
typedef std::map<std::pair<int,int>,Edge*> EMap;
typedef EMap::iterator EMapIterator;
typedef EMap::const_iterator EMapCIterator;
// Vertex object.
class WM5_MATHEMATICS_ITEM Vertex
{
public:
Vertex (int v);
virtual ~Vertex ();
int V;
EPtr E[2];
};
// Edge object.
class WM5_MATHEMATICS_ITEM Edge
{
public:
Edge (int v0, int v1);
virtual ~Edge ();
// Vertices, listed as a directed edge <V[0],V[1]>.
int V[2];
// Adjacent edges:
// T[0] points to edge sharing V[0]
// T[1] points to edge sharing V[1]
EPtr E[2];
};
// Construction and destruction.
VEManifoldMesh (VCreator vCreator = 0, ECreator eCreator = 0);
virtual ~VEManifoldMesh ();
// Member access.
inline const VMap& GetVertices () const;
inline const EMap& GetEdges () const;
// Mesh manipulation.
EPtr InsertEdge (int v0, int v1);
bool RemoveEdge (int v0, int v1);
// Manifold mesh is closed if each vertex is shared twice.
bool IsClosed () const;
// For debugging.
void Print (const char* filename);
protected:
// The vertex data.
static VPtr CreateVertex (int v0);
VCreator mVCreator;
VMap mVMap;
// The edge data.
static EPtr CreateEdge (int v0, int v1);
ECreator mECreator;
EMap mEMap;
};
#include "Wm5VEManifoldMesh.inl"
}
#endif
|