Version: 5.1.6

INTERP_KERNEL.Node Class Reference

#include <InterpKernelGeo2DNode.hxx>

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)
 use with caution
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)
 idem areDoubleEquals except that precision of comparison is modified.
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]

Detailed Description

As nodes can be shared between edges it is dealed with ref counting.

Constructor & Destructor Documentation

Node::Node ( double  x,
double  y 
Node::Node ( const double coords  ) 
Node::Node ( std::istream &  stream  ) 
Node::~Node (  )  [protected]

Member Function Documentation

void INTERP_KERNEL.Node.incrRef (  )  const
bool Node::decrRef (  ) 
void INTERP_KERNEL.Node.initLocs (  )  const


void INTERP_KERNEL.Node.setLoc ( TypeOfLocInPolygon  loc  )  const
TypeOfLocInPolygon INTERP_KERNEL.Node.getLoc (  )  const
void INTERP_KERNEL.Node.declareIn (  )  const
void INTERP_KERNEL.Node.declareOn (  )  const
void INTERP_KERNEL.Node.declareOnLim (  )  const
void INTERP_KERNEL.Node.declareOut (  ) 
void INTERP_KERNEL.Node.declareOnTangent (  ) 
INTERP_KERNEL.Node.operator const double * (  )  const
bool Node::isEqual ( const Node other  )  const
double Node::getSlope ( const Node other  )  const
bool Node::isEqualAndKeepTrack ( const Node other,
std::vector< Node * > &  track 
) const

Convenient method. Equivalent to isEqual method. In case of true is returned, '&other' is added in 'track' container.

References INTERP_KERNEL.Node.isEqual(), and testMEDMEM.ret.

void Node::dumpInXfigFile ( std::ostream &  stream,
int  resolution,
const Bounds box 
) const
double Node::distanceWithSq ( const Node other  )  const
double INTERP_KERNEL.Node.operator[] ( int  i  )  const
void INTERP_KERNEL.Node.setNewCoords ( double  x,
double  y 

use with caution

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 INTERP_KERNEL.Node.norm(), testMEDMEM.ret, and INTERP_KERNEL.EdgeArcCircle.safeAcos().

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 INTERP_KERNEL.Node.norm().

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 INTERP_KERNEL.Node._coords.

static double ( 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.


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]

Field Documentation

unsigned char INTERP_KERNEL.Node._cnt [mutable, protected]