#include <geometry.h>
Classes | |
struct spanCompare | |
Public Member Functions | |
void Add () | |
void Add (const Kurve *k, bool AddNullSpans=true) | |
bool Add (const Point &p0, bool AddNullSpans=true) | |
bool Add (const Span &sp, bool AddNullSpans=true) | |
bool Add (const spVertex &spv, bool AddNullSpans=true) | |
bool Add (int type, const Point &p0, const Point &pc, bool AddNullSpans=true) | |
void AddEllipse (int dir, const Point &pStart, const Point &pEnd, const Point &pCentre, const Vector2d &majorAxis, double majorRadius, double minorRadius, double tolerance) | |
void AddIndex (int vertexNumber, const SpanDataObject *data) | |
void AddSections (const Kurve *k, bool endOfSection) | |
void AddSpanID (int ID) | |
double Area () const | |
int Break (double atParam, const Kurve *secInput, Kurve *refOut, Kurve *secOut) | |
void ChangeEnd (const Point *pNewEnd, int endSpanno) | |
void ChangeStart (const Point *pNewStart, int startSpanno) | |
void Clear () | |
bool Closed () const | |
bool Compare (const Kurve *k, Matrix *m, bool bAllowMirror=true) const | |
void FullCircle (int dir, const Point &c, double radius) | |
int Get (int spannumber, Span &sp, bool returnSpanProperties=false, bool transform=false) const | |
int Get (int spanVertexNumber, Point &p, Point &pc) const | |
int Get (int spanVertexNumber, Point3d &p, Point3d &pc) const | |
void Get (int vertex, spVertex &spv) const | |
void Get (Point &ps, Point &pe) const | |
void Get (std::vector< Span > *all, bool ignoreNullSpans) const | |
const SpanDataObject * GetIndex (int vertexNumber) const | |
double GetLength () const | |
int GetSpanID (int spanVertexNumber) const | |
int IntExtWire (Kurve &kSec, double Ref, double Sec, double height, Kurve *kOut) | |
int Intof (const Kurve &k, vector< Point > &p) const | |
int Intof (const Span &sp, vector< Point > &p) const | |
Kurve () | |
Kurve (const Kurve &k0) | |
void minmax (Box &b) | |
void minmax (Point &pmin, Point &pmax) | |
Point Near (const Point &p) const | |
Point Near (const Point &p, int &nearSpanNumber) const | |
Point NearToVertex (const Point &p) const | |
Point NearToVertex (const Point &p, int &nearSpanNumber) const | |
int nSpans () const | |
int Offset (vector< Kurve * > &OffsetKurves, double offset, int direction, int method, int &ret) const | |
int OffsetISOMethod (Kurve &kOffset, double off, int direction, bool BlendAll) const | |
int OffsetMethod1 (Kurve &kOffset, double off, int direction, int method, int &ret) const | |
bool operator!= (const Kurve &k) const | |
const Kurve & operator= (const Kurve &k) | |
const Kurve & operator= (const Matrix &m) | |
bool operator== (const Kurve &k) const | |
Kurve Part (double fromParam, double toParam) | |
void Part (double fromParam, double toParam, const Kurve *secInput, Kurve *refOut, Kurve *secOut) | |
Kurve Part (int fromSpanno, const Point &fromPt, int toSpanno, const Point &toPt) | |
void Part (int startVertex, int EndVertex, Kurve *part) | |
double Perim () const | |
int Reduce (double tolerance) | |
void Replace (int vertexnumber, const spVertex &spv) | |
void Replace (int vertexnumber, int type, const Point &p, const Point &pc, int ID=UNMARKED) | |
void Reverse () | |
bool Reverse (bool isReversed) | |
void SetZ (double z) | |
void Spiral (const Point ¢re, double startAngle, double startRadius, double radiusRisePerRevolution, double endRadius) | |
bool Split (double MaximumRadius, double reslution) | |
void Start () | |
void Start (const Point &p) | |
bool Started () const | |
void StoreAllSpans (std::vector< Span > &kSpans) const | |
~Kurve () | |
![]() | |
void Get (double *p) const | |
void GetRotation (double &ax, double &ay, double &az) const | |
bool GetScale (double &sx) const | |
void GetScale (double &sx, double &sy, double &sz) const | |
void GetTranslate (double &x, double &y, double &z) const | |
Matrix Inverse () | |
int IsMirrored () | |
int IsUnit () | |
Matrix () | |
Matrix (double m[16]) | |
void Multiply (Matrix &m) | |
bool operator!= (const Matrix &m) const | |
bool operator== (const Matrix &m) const | |
void Put (double *p) | |
void Rotate (double angle, int Axis) | |
void Rotate (double angle, Vector3d *rotAxis) | |
void Rotate (double sinang, double cosang, int Axis) | |
void Rotate (double sinang, double cosang, Vector3d *rotAxis) | |
void Scale (double scale) | |
void Scale (double scalex, double scaley, double scalez) | |
void Transform (double p0[3]) const | |
void Transform (double p0[3], double p1[3]) const | |
void Transform2d (double p0[2], double p1[2]) const | |
void Translate (double x, double y, double z=0) | |
void Unit () | |
~Matrix () | |
Protected Attributes | |
bool m_isReversed | |
int m_nVertices | |
vector< SpanVertex * > m_spans | |
bool m_started | |
Friends | |
wofstream & operator<< (wofstream &op, Kurve &k) | |
wifstream & operator>> (wifstream &op, Kurve &k) | |
Additional Inherited Members | |
![]() | |
double e [16] | |
int m_mirrored | |
bool m_unit | |
Constructor & Destructor Documentation
◆ Kurve() [1/2]
geoff_geometry::Kurve::Kurve | ( | ) |
Referenced by Offset().
◆ Kurve() [2/2]
geoff_geometry::Kurve::Kurve | ( | const Kurve & | k0 | ) |
copy constructor
References geoff_geometry::Matrix::e, m_isReversed, geoff_geometry::Matrix::m_mirrored, m_nVertices, m_spans, m_started, and geoff_geometry::Matrix::m_unit.
◆ ~Kurve()
geoff_geometry::Kurve::~Kurve | ( | ) |
References Clear().
Member Function Documentation
◆ Add() [1/6]
void geoff_geometry::Kurve::Add | ( | ) |
References geoff_geometry::FAILURE(), Get(), and m_nVertices.
Referenced by Add(), FullCircle(), and Start().
◆ Add() [2/6]
References Add(), AddIndex(), geoff_geometry::Span::dir, geoff_geometry::Point::Dist(), Get(), GetIndex(), geoff_geometry::Matrix::Inverse(), geoff_geometry::Matrix::m_unit, geoff_geometry::Matrix::Multiply(), nSpans(), geoff_geometry::Span::p0, geoff_geometry::Span::p1, geoff_geometry::Span::pc, geoff_geometry::TOLERANCE, and geoff_geometry::Span::Transform().
◆ Add() [3/6]
◆ Add() [4/6]
◆ Add() [5/6]
References Add(), AddSpanID(), geoff_geometry::spVertex::p, geoff_geometry::spVertex::pc, geoff_geometry::spVertex::spanid, and geoff_geometry::spVertex::type.
Referenced by ChangeEnd(), ChangeStart(), geoff_geometry::eliminateLoops(), OffsetISOMethod(), OffsetMethod1(), Part(), Reduce(), and Split().
◆ Add() [6/6]
bool geoff_geometry::Kurve::Add | ( | int | type, |
const Point & | p0, | ||
const Point & | pc, | ||
bool | AddNullSpans = true |
||
) |
References geoff_geometry::Point::Dist(), Get(), m_nVertices, m_spans, m_started, Start(), and geoff_geometry::TOLERANCE.
◆ AddEllipse()
void geoff_geometry::Kurve::AddEllipse | ( | int | dir, |
const Point & | pStart, | ||
const Point & | pEnd, | ||
const Point & | pCentre, | ||
const Vector2d & | majorAxis, | ||
double | majorRadius, | ||
double | minorRadius, | ||
double | tolerance | ||
) |
◆ AddIndex()
void geoff_geometry::Kurve::AddIndex | ( | int | vertexNumber, |
const SpanDataObject * | data | ||
) |
References geoff_geometry::FAILURE(), m_nVertices, and m_spans.
Referenced by Add().
◆ AddSections()
◆ AddSpanID()
void geoff_geometry::Kurve::AddSpanID | ( | int | ID | ) |
References m_nVertices, and m_spans.
Referenced by Add(), geoff_geometry::eliminateLoops(), FullCircle(), and OffsetMethod1().
◆ Area()
double geoff_geometry::Kurve::Area | ( | ) | const |
References geoff_geometry::Span::angle, Closed(), geoff_geometry::FAILURE(), Get(), geoff_geometry::getMessage(), geoff_geometry::Matrix::GetScale(), m_nVertices, geoff_geometry::Span::p0, geoff_geometry::Span::p1, geoff_geometry::Span::pc, geoff_geometry::Span::radius, geoff_geometry::Point::x, and geoff_geometry::Point::y.
Referenced by OffsetMethod1().
◆ Break()
int geoff_geometry::Kurve::Break | ( | double | atParam, |
const Kurve * | secInput, | ||
Kurve * | refOut, | ||
Kurve * | secOut | ||
) |
◆ ChangeEnd()
void geoff_geometry::Kurve::ChangeEnd | ( | const Point * | pNewEnd, |
int | endSpanno | ||
) |
◆ ChangeStart()
void geoff_geometry::Kurve::ChangeStart | ( | const Point * | pNewStart, |
int | startSpanno | ||
) |
◆ Clear()
void geoff_geometry::Kurve::Clear | ( | ) |
References m_isReversed, m_nVertices, m_spans, and m_started.
Referenced by FullCircle(), operator=(), Start(), and ~Kurve().
◆ Closed()
bool geoff_geometry::Kurve::Closed | ( | ) | const |
References Get(), and m_nVertices.
Referenced by Area(), ChangeStart(), OffsetMethod1(), and Part().
◆ Compare()
◆ FullCircle()
void geoff_geometry::Kurve::FullCircle | ( | int | dir, |
const Point & | c, | ||
double | radius | ||
) |
make a full circle Kurve (2 spans) mark the first span for later
References Add(), AddSpanID(), Clear(), geoff_geometry::FULL_CIRCLE_KURVE, Start(), and geoff_geometry::Point::x.
◆ Get() [1/6]
int geoff_geometry::Kurve::Get | ( | int | spannumber, |
Span & | sp, | ||
bool | returnSpanProperties = false , |
||
bool | transform = false |
||
) | const |
References geoff_geometry::Span::dir, geoff_geometry::FAILURE(), Get(), geoff_geometry::getMessage(), GetSpanID(), geoff_geometry::Span::ID, m_isReversed, m_nVertices, m_spans, geoff_geometry::Matrix::m_unit, geoff_geometry::Point::ok, geoff_geometry::Span::p0, geoff_geometry::Span::p1, geoff_geometry::Span::pc, geoff_geometry::Span::SetProperties(), geoff_geometry::Span::Transform(), geoff_geometry::Point::x, and geoff_geometry::Point::y.
◆ Get() [2/6]
References geoff_geometry::FAILURE(), geoff_geometry::getMessage(), m_isReversed, m_nVertices, and m_spans.
◆ Get() [3/6]
◆ Get() [4/6]
void geoff_geometry::Kurve::Get | ( | int | vertex, |
spVertex & | spv | ||
) | const |
References GetSpanID(), geoff_geometry::spVertex::p, geoff_geometry::spVertex::pc, geoff_geometry::spVertex::spanid, and geoff_geometry::spVertex::type.
Referenced by Add(), Area(), ChangeEnd(), ChangeStart(), Closed(), geoff_geometry::DoesIntersInterfere(), geoff_geometry::eliminateLoops(), Get(), Intof(), minmax(), Near(), NearToVertex(), OffsetISOMethod(), OffsetMethod1(), operator==(), Part(), Perim(), Reduce(), Reverse(), Split(), and StoreAllSpans().
◆ Get() [5/6]
References Get(), m_nVertices, geoff_geometry::Span::p0, and geoff_geometry::Span::p1.
◆ Get() [6/6]
put all spans to vector
References Get(), nSpans(), and geoff_geometry::Span::NullSpan.
◆ GetIndex()
const SpanDataObject * geoff_geometry::Kurve::GetIndex | ( | int | vertexNumber | ) | const |
References geoff_geometry::FAILURE(), m_nVertices, and m_spans.
Referenced by Add().
◆ GetLength()
double geoff_geometry::Kurve::GetLength | ( | ) | const |
◆ GetSpanID()
int geoff_geometry::Kurve::GetSpanID | ( | int | spanVertexNumber | ) | const |
References geoff_geometry::FAILURE(), geoff_geometry::getMessage(), m_isReversed, m_nVertices, and m_spans.
Referenced by geoff_geometry::eliminateLoops(), Get(), and Reverse().
◆ IntExtWire()
int geoff_geometry::Kurve::IntExtWire | ( | Kurve & | kSec, |
double | Ref, | ||
double | Sec, | ||
double | height, | ||
Kurve * | kOut | ||
) |
◆ Intof() [1/2]
References geoff_geometry::Dist(), Get(), Intof(), nSpans(), and geoff_geometry::TOLERANCE.
◆ Intof() [2/2]
References geoff_geometry::bubblesort(), Get(), geoff_geometry::Span::Intof(), geoff_geometry::Span::length, nSpans(), geoff_geometry::Span::p1, and geoff_geometry::Span::SetProperties().
Referenced by Intof().
◆ minmax() [1/2]
◆ minmax() [2/2]
◆ Near() [1/2]
◆ Near() [2/2]
References geoff_geometry::Point::Dist(), Get(), geoff_geometry::Span::NearOn(), nSpans(), and geoff_geometry::TOLERANCE.
Referenced by Part().
◆ NearToVertex() [1/2]
References NearToVertex().
Referenced by NearToVertex().
◆ NearToVertex() [2/2]
◆ nSpans()
int geoff_geometry::Kurve::nSpans | ( | ) | const |
◆ Offset()
int geoff_geometry::Kurve::Offset | ( | vector< Kurve * > & | OffsetKurves, |
double | offset, | ||
int | direction, | ||
int | method, | ||
int & | ret | ||
) | const |
◆ OffsetISOMethod()
References Add(), geoff_geometry::Matrix::e, geoff_geometry::FEQZ(), Get(), nSpans(), iso::off, geoff_geometry::Span::Offset(), iso::sp, and Start().
◆ OffsetMethod1()
int geoff_geometry::Kurve::OffsetMethod1 | ( | Kurve & | kOffset, |
double | off, | ||
int | direction, | ||
int | method, | ||
int & | ret | ||
) | const |
References Add(), AddSpanID(), Area(), Closed(), geoff_geometry::Span::dir, geoff_geometry::Point::Dist(), geoff_geometry::eliminateLoops(), geoff_geometry::FAILURE(), Get(), geoff_geometry::Matrix::GetScale(), geoff_geometry::Span::ID, geoff_geometry::Span::Intof(), geoff_geometry::Matrix::m_mirrored, m_nVertices, m_started, geoff_geometry::Matrix::Matrix(), geoff_geometry::NO_ELIMINATION, nSpans(), geoff_geometry::Span::NullSpan, geoff_geometry::Span::Offset(), geoff_geometry::Span::p0, geoff_geometry::Span::p1, geoff_geometry::Span::pc, Replace(), geoff_geometry::ROLL_AROUND, Start(), geoff_geometry::TOLERANCE, geoff_geometry::Span::ve, and geoff_geometry::Span::vs.
Referenced by CCurve::Offset(), and Offset().
◆ operator!=()
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ operator==()
◆ Part() [1/4]
Kurve geoff_geometry::Kurve::Part | ( | double | fromParam, |
double | toParam | ||
) |
return a part Kurve - perimeter parameterisation fromParam & toParam 0 - 1 perimeter parameter
References Add(), geoff_geometry::FEQ(), Get(), geoff_geometry::Span::length, m_started, geoff_geometry::Span::MidPerim(), nSpans(), geoff_geometry::Span::p0, geoff_geometry::Span::p1, Perim(), and Start().
◆ Part() [2/4]
void geoff_geometry::Kurve::Part | ( | double | fromParam, |
double | toParam, | ||
const Kurve * | secInput, | ||
Kurve * | refOut, | ||
Kurve * | secOut | ||
) |
◆ Part() [3/4]
◆ Part() [4/4]
void geoff_geometry::Kurve::Part | ( | int | startVertex, |
int | EndVertex, | ||
Kurve * | part | ||
) |
◆ Perim()
double geoff_geometry::Kurve::Perim | ( | ) | const |
◆ Reduce()
int geoff_geometry::Kurve::Reduce | ( | double | tolerance | ) |
◆ Replace() [1/2]
void geoff_geometry::Kurve::Replace | ( | int | vertexnumber, |
const spVertex & | spv | ||
) |
References geoff_geometry::spVertex::p, geoff_geometry::spVertex::pc, geoff_geometry::spVertex::spanid, and geoff_geometry::spVertex::type.
Referenced by OffsetMethod1(), and Reverse().
◆ Replace() [2/2]
void geoff_geometry::Kurve::Replace | ( | int | vertexnumber, |
int | type, | ||
const Point & | p, | ||
const Point & | pc, | ||
int | ID = UNMARKED |
||
) |
References geoff_geometry::FAILURE(), geoff_geometry::getMessage(), m_nVertices, and m_spans.
◆ Reverse() [1/2]
void geoff_geometry::Kurve::Reverse | ( | ) |
References Get(), GetSpanID(), m_nVertices, and Replace().
◆ Reverse() [2/2]
◆ SetZ()
void geoff_geometry::Kurve::SetZ | ( | double | z | ) |
◆ Spiral()
void geoff_geometry::Kurve::Spiral | ( | const Point & | centre, |
double | startAngle, | ||
double | startRadius, | ||
double | radiusRisePerRevolution, | ||
double | endRadius | ||
) |
◆ Split()
bool geoff_geometry::Kurve::Split | ( | double | MaximumRadius, |
double | reslution | ||
) |
References Add(), geoff_geometry::Span::dir, Get(), m_nVertices, geoff_geometry::Span::p0, geoff_geometry::Span::p1, geoff_geometry::Span::pc, geoff_geometry::Span::radius, geoff_geometry::Span::SetProperties(), geoff_geometry::Span::Split(), geoff_geometry::Span::SplitMatrix(), Start(), and geoff_geometry::Point::Transform().
◆ Start() [1/2]
void geoff_geometry::Kurve::Start | ( | ) |
References Clear(), and m_started.
Referenced by Add(), ChangeEnd(), ChangeStart(), geoff_geometry::eliminateLoops(), FullCircle(), OffsetISOMethod(), OffsetMethod1(), Part(), Reduce(), Split(), and Start().
◆ Start() [2/2]
◆ Started()
bool geoff_geometry::Kurve::Started | ( | ) | const |
◆ StoreAllSpans()
void geoff_geometry::Kurve::StoreAllSpans | ( | std::vector< Span > & | kSpans | ) | const |
Friends And Related Function Documentation
◆ operator<<
|
friend |
◆ operator>>
|
friend |
Member Data Documentation
◆ m_isReversed
|
protected |
Referenced by Clear(), Get(), GetSpanID(), Kurve(), and operator=().
◆ m_nVertices
|
protected |
Referenced by Add(), AddIndex(), AddSpanID(), Area(), Clear(), Closed(), Get(), GetIndex(), GetSpanID(), Kurve(), minmax(), NearToVertex(), OffsetMethod1(), operator=(), Perim(), Reduce(), Replace(), Reverse(), and Split().
◆ m_spans
|
protected |
Referenced by Add(), AddIndex(), AddSpanID(), Clear(), Get(), GetIndex(), GetSpanID(), Kurve(), operator=(), and Replace().
◆ m_started
|
protected |
Referenced by Add(), Clear(), Kurve(), OffsetMethod1(), operator=(), Part(), and Start().
The documentation for this class was generated from the following files:
- src/Mod/Path/libarea/kurve/geometry.h
- src/Mod/Path/libarea/kurve/kurve.cpp
- src/Mod/Path/libarea/kurve/offset.cpp