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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
#include <BALL/STRUCTURE/SASEdge.h>
#include <BALL/STRUCTURE/SASFace.h>
#include <BALL/STRUCTURE/SASVertex.h>
#include <BALL/MATHS/sphere3.h>
#include <list>
namespace BALL
{
SASFace::SASFace()
: GraphFace< SASVertex,SASEdge,SASFace >(),
orientation_(),
sphere_()
{
}
SASFace::SASFace(const SASFace& sasface, bool deep)
: GraphFace< SASVertex,SASEdge,SASFace >(sasface,deep),
orientation_(),
sphere_(sasface.sphere_)
{
if (deep)
{
orientation_ = sasface.orientation_;
}
}
SASFace::~SASFace()
{
}
void SASFace::set(const SASFace& sasface, bool deep)
{
if (this != &sasface)
{
GraphFace< SASVertex,SASEdge,SASFace >::set(sasface,deep);
if (deep)
{
orientation_ = sasface.orientation_;
}
sphere_.set(sasface.sphere_);
}
}
SASFace& SASFace::operator = (const SASFace& sasface)
{
if (this != &sasface)
{
GraphFace< SASVertex,SASEdge,SASFace >::operator = (sasface);
orientation_ = sasface.orientation_;
sphere_.set(sasface.sphere_);
}
return *this;
}
void SASFace::setSphere(const TSphere3<double>& sphere)
{
sphere_ = sphere;
}
TSphere3<double> SASFace::getSphere() const
{
return sphere_;
}
bool SASFace::operator == (const SASFace&) const
{
return true;
}
bool SASFace::operator != (const SASFace&) const
{
return false;
}
bool SASFace::operator *= (const SASFace&) const
{
return true;
}
SASFace::OrientationIterator SASFace::beginOrientation()
{
return orientation_.begin();
}
SASFace::ConstOrientationIterator SASFace::beginOrientation() const
{
return orientation_.begin();
}
SASFace::OrientationIterator SASFace::endOrientation()
{
return orientation_.end();
}
SASFace::ConstOrientationIterator SASFace::endOrientation() const
{
return orientation_.end();
}
std::ostream& operator << (std::ostream& s, const SASFace& sasface)
{
s << "SASFACE" << sasface.getIndex() << "(";
SASFace::ConstVertexIterator v = sasface.beginVertex();
while (v != sasface.endVertex())
{
s << (*v)->getIndex() << ' ';
v++;
}
s << "] [";
SASFace::ConstEdgeIterator e = sasface.beginEdge();
while (e != sasface.endEdge())
{
s << (*e)->getIndex() << ' ';
e++;
}
s << "] [";
SASFace::ConstOrientationIterator o = sasface.beginOrientation();
while (o != sasface.endOrientation())
{
s << (*o ? "+ " : "- ");
o++;
}
s << "])";
return s;
}
} // namespace BALL
|