Geom Software - C++ Programming and Geometry Libraries
Fade3D Documentation pages v0.99
/home/geom/repo/dev/geomDev/dt3/dt3Library/Edge3.h
1 // Copyright (C) Geom Software e.U, Bernhard Kornberger, Graz/Austria
2 //
3 // This file is part of the Fade3D library. The student license is free
4 // of charge and covers personal non-commercial research. Licensees
5 // holding a commercial license may use this file in accordance with
6 // the Commercial License Agreement.
7 //
8 // This software is provided AS IS with NO WARRANTY OF ANY KIND,
9 // INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS
10 // FOR A PARTICULAR PURPOSE.
11 //
12 // Please contact the author if any conditions of this licensing are
13 // not clear to you.
14 //
15 // Author: Bernhard Kornberger, bkorn (at) geom.at
16 // https://www.geom.at
17 
18 
19 
20 #pragma once
21 #include <iostream>
22 #include "definitions.h"
23 
24 namespace FADE3D {
25 
26 class Tet3;
27 class Point3;
28 
43 class CLASS_DECLSPEC Edge3
44 {
45 public:
52  Edge3(Tet3* pTet_ ,const int opp3_,const int opp2_);
55  Tet3* getTet() const;
58  int getOpp3Index() const;
61  int getOpp2Index() const;
66  int getSourceIndex () const;
71  int getTargetIndex() const;
74  Point3* getSourceVtx() const;
77  Point3* getTargetVtx() const;
84  bool operator==(const Edge3& rhs) const;
90  bool operator!=(const Edge3& rhs) const;
91 
92 // Internal use, compares the pointers (used to sort lists of edges)
94  bool operator<(const Edge3& other) const;
95  friend std::ostream &operator<<(std::ostream &stream, Edge3& e);
96 private:
97  Tet3* pTet;
98  int opp3ICI;
99  int opp2ICI;
100  Point3 *pOrderedVtx0,*pOrderedVtx1;
101 };
102 
103 
104 
105 
106 
107 } // NAMESPACE FADE3D
108 
109 
Definition: Ball3.h:16
Vertex.
Definition: Point3.h:32
Tetrahedron.
Definition: Tet3.h:46
Edge of a tetrahedron.
Definition: Edge3.h:43