Med Memory Users' Guide 5.1.3
|
Public Member Functions | |
Node (double x, double y) | |
Node (const double *coords) | |
Node (std::istream &stream) | |
void | incrRef () const |
bool | decrRef () |
void | initLocs () const |
void | setLoc (TypeOfLocInPolygon loc) const |
TypeOfLocInPolygon | getLoc () const |
void | declareIn () const |
void | declareOn () const |
void | declareOnLim () const |
void | declareOut () |
void | declareOnTangent () |
operator const double * () const | |
bool | isEqual (const Node &other) const |
double | getSlope (const Node &other) const |
bool | isEqualAndKeepTrack (const Node &other, std::vector< Node * > &track) const |
void | dumpInXfigFile (std::ostream &stream, int resolution, const Bounds &box) const |
double | distanceWithSq (const Node &other) const |
double | operator[] (int i) const |
void | setNewCoords (double x, double y) |
void | applySimilarity (double xBary, double yBary, double dimChar) |
Static Public Member Functions | |
static double | computeSlope (const double *pt1, const double *pt2) |
static double | computeAngle (const double *pt1, const double *pt2) |
static double | dot (const double *vect1, const double *vect2) |
static double | sign (double val) |
static double | norm (const double *vect) |
static bool | areDoubleEquals (double a, double b) |
static bool | areDoubleEqualsWP (double a, double b, double k) |
static double | distanceBtw2Pt (const double *a, const double *b) |
static double | distanceBtw2PtSq (const double *a, const double *b) |
Protected Member Functions | |
~Node () | |
Protected Attributes | |
unsigned char | _cnt |
TypeOfLocInPolygon | _loc |
double | _coords [2] |
As nodes can be shared between edges it is dealed with ref counting.
Node::Node | ( | double | x, |
double | y | ||
) |
References _coords.
Node::Node | ( | const double * | coords | ) |
References _coords.
Node::Node | ( | std::istream & | stream | ) |
References _coords.
Node::~Node | ( | ) | [protected] |
void INTERP_KERNEL::Node::incrRef | ( | ) | const |
Referenced by INTERP_KERNEL::Edge::changeEndNodeWith(), INTERP_KERNEL::Edge::changeEndNodeWithAndKeepTrack(), INTERP_KERNEL::Edge::changeStartNodeWith(), INTERP_KERNEL::Edge::changeStartNodeWithAndKeepTrack(), INTERP_KERNEL::Edge::Edge(), INTERP_KERNEL::IntersectElement::IntersectElement(), and INTERP_KERNEL::IntersectElement::setNode().
bool Node::decrRef | ( | ) |
References _cnt.
Referenced by INTERP_KERNEL::QuadraticPolygon::amIAChanceToBeCompletedBy(), INTERP_KERNEL::EdgeArcCircle::dumpInXfigFile(), INTERP_KERNEL::EdgeArcCircle::EdgeArcCircle(), INTERP_KERNEL::Edge::interpolate1DLin(), INTERP_KERNEL::ElementaryEdge::locateFullyMySelfAbsolute(), INTERP_KERNEL::Edge::~Edge(), and INTERP_KERNEL::IntersectElement::~IntersectElement().
void INTERP_KERNEL::Node::initLocs | ( | ) | const |
References INTERP_KERNEL::UNKNOWN.
void INTERP_KERNEL::Node::setLoc | ( | TypeOfLocInPolygon | loc | ) | const |
TypeOfLocInPolygon INTERP_KERNEL::Node::getLoc | ( | ) | const |
void INTERP_KERNEL::Node::declareIn | ( | ) | const |
References INTERP_KERNEL::IN_1, and INTERP_KERNEL::UNKNOWN.
Referenced by INTERP_KERNEL::Edge::declareIn().
void INTERP_KERNEL::Node::declareOn | ( | ) | const |
References INTERP_KERNEL::ON_1, and INTERP_KERNEL::UNKNOWN.
Referenced by INTERP_KERNEL::Edge::declareOn(), INTERP_KERNEL::SegSegIntersector::getIntersectionsCharacteristicVal(), INTERP_KERNEL::ArcCSegIntersector::getIntersectionsCharacteristicVal(), and INTERP_KERNEL::ArcCArcCIntersector::getIntersectionsCharacteristicVal().
void INTERP_KERNEL::Node::declareOnLim | ( | ) | const |
void INTERP_KERNEL::Node::declareOut | ( | ) |
References INTERP_KERNEL::OUT_1, and INTERP_KERNEL::UNKNOWN.
Referenced by INTERP_KERNEL::Edge::declareOut().
void INTERP_KERNEL::Node::declareOnTangent | ( | ) |
INTERP_KERNEL::Node::operator const double * | ( | ) | const |
bool Node::isEqual | ( | const Node & | other | ) | const |
References areDoubleEquals().
Referenced by INTERP_KERNEL::Edge::changeEndNodeWith(), INTERP_KERNEL::Edge::changeStartNodeWith(), INTERP_KERNEL::SegSegIntersector::getIntersectionsCharacteristicVal(), INTERP_KERNEL::ArcCSegIntersector::getIntersectionsCharacteristicVal(), isEqualAndKeepTrack(), and INTERP_KERNEL::EdgeIntersector::obviousCaseForCurvAbscisse().
double Node::getSlope | ( | const Node & | other | ) | const |
References computeSlope().
Referenced by INTERP_KERNEL::ComposedEdge::isInOrOut().
Convenient method. Equivalent to isEqual method. In case of true is returned, '&other' is added in 'track' container.
References isEqual().
Referenced by INTERP_KERNEL::Edge::changeEndNodeWithAndKeepTrack(), and INTERP_KERNEL::Edge::changeStartNodeWithAndKeepTrack().
void Node::dumpInXfigFile | ( | std::ostream & | stream, |
int | resolution, | ||
const Bounds & | box | ||
) | const |
References _coords.
Referenced by INTERP_KERNEL::EdgeLin::dumpInXfigFile(), and INTERP_KERNEL::EdgeArcCircle::dumpInXfigFile().
double Node::distanceWithSq | ( | const Node & | other | ) | const |
References _coords.
Referenced by INTERP_KERNEL::EdgeLin::getNormSq(), and INTERP_KERNEL::EdgeLin::isNodeLyingOn().
double INTERP_KERNEL::Node::operator[] | ( | int | i | ) | const |
void INTERP_KERNEL::Node::setNewCoords | ( | double | x, |
double | y | ||
) |
use with caution
Referenced by INTERP_KERNEL::Edge::interpolate1DLin().
double Node::computeSlope | ( | const double * | pt1, |
const double * | pt2 | ||
) | [static] |
WARNING different from 'computeAngle' method ! The returned value are not in the same interval ! Here in -Pi/2; Pi/2. Typically this method returns the same value by exchanging pt1 and pt2. Use in process of detection of a point in or not in polygon.
References norm(), and INTERP_KERNEL::EdgeArcCircle::safeAcos().
Referenced by getSlope().
double Node::computeAngle | ( | const double * | pt1, |
const double * | pt2 | ||
) | [static] |
WARNING different from 'computeSlope' method. Here angle in -Pi;Pi is returned. This method is anti-symetric.
References INTERP_KERNEL::EdgeArcCircle::getAbsoluteAngleOfNormalizedVect(), and norm().
Referenced by INTERP_KERNEL::EdgeArcCircle::getDistanceToPoint(), and INTERP_KERNEL::EdgeArcCircle::isNodeLyingOn().
void Node::applySimilarity | ( | double | xBary, |
double | yBary, | ||
double | dimChar | ||
) |
apply a Similarity transformation on this.
xBary | is the opposite of the X translation to do. |
yBary | is the opposite of the Y translation to do. |
dimChar | is the reduction factor. |
References _coords.
Referenced by INTERP_KERNEL::ComposedEdge::applySimilarity().
static double INTERP_KERNEL::Node::dot | ( | const double * | vect1, |
const double * | vect2 | ||
) | [static] |
static double INTERP_KERNEL::Node::sign | ( | double | val | ) | [static] |
static double INTERP_KERNEL::Node::norm | ( | const double * | vect | ) | [static] |
static bool INTERP_KERNEL::Node::areDoubleEquals | ( | double | a, |
double | b | ||
) | [static] |
static bool INTERP_KERNEL::Node::areDoubleEqualsWP | ( | double | a, |
double | b, | ||
double | k | ||
) | [static] |
idem areDoubleEquals except that precision of comparison is modified.
Referenced by INTERP_KERNEL::ArcCArcCIntersector::getIntersectionsCharacteristicVal().
static double INTERP_KERNEL::Node::distanceBtw2Pt | ( | const double * | a, |
const double * | b | ||
) | [static] |
static double INTERP_KERNEL::Node::distanceBtw2PtSq | ( | const double * | a, |
const double * | b | ||
) | [static] |
unsigned char INTERP_KERNEL::Node::_cnt [mutable, protected] |
Referenced by decrRef().
TypeOfLocInPolygon INTERP_KERNEL::Node::_loc [mutable, protected] |
double INTERP_KERNEL::Node::_coords[2] [protected] |
Referenced by applySimilarity(), distanceWithSq(), dumpInXfigFile(), and Node().