8 #ifndef MSICHART_CURVELINEROBJECT_H 9 #define MSICHART_CURVELINEROBJECT_H 11 #include "PDCHeader/PDCvector" 30 const std::vector<Point2D>& irPoints,
GraphCollectionObject* ipParentObject =
NULL,
bool iHasLineFormat =
true,
bool iIsVertical =
true,
bool iIsClosePath =
false);
41 virtual void Draw()
const;
65 void CurveToEnd(
bool iIsLinePath =
false)
const;
174 void hGenerateBezierCurveLines(
const std::vector<Point2D>& irPoints);
182 void hSplitAtTangentPointRecursive(
const Point2D& irOffset, std::vector<CurveLineObject::Ptr>& orSplitCurves);
191 void hSplitInsideBezierRecursive(
CurveLineObject::Ptr iCurveLinePtr, std::vector<CurveLineObject::Ptr>& orSplitCurves);
201 void hSplitEndPointBezierRecursive(
CurveLineObject::Ptr iCurveLinePtr, std::vector<CurveLineObject::Ptr>& orSplitCurves);
215 void hTridiagonalSolve(std::vector<double>& irB, std::vector<double>& irC, std::vector<double>& irD, std::vector<double>& orX);
217 std::vector<BezierCurve::Ptr> mBezierCurves;
bool IsBefore(const Point2D &irOffset, CurveLineObject::Ptr iCurveLinePtr) const
void AddBezierCurveLine(BezierCurve::Ptr iBezierCurvePtr)
virtual bool PointInObject(const Point2D &irPoint)
Definition: GraphCollectionObject.h:19
CurveLineObject(const TripleId &irTripleId, GraphObjectManager *ipManager, const std::vector< Point2D > &irPoints, GraphCollectionObject *ipParentObject=NULL, bool iHasLineFormat=true, bool iIsVertical=true, bool iIsClosePath=false)
virtual void DrawOutLine()
Definition: CurveLineObject.h:20
void SplitAtTangentPoints(const Point2D &irOffset, std::vector< CurveLineObject::Ptr > &orSplitCurves)
CurveLineObject::Ptr CloneReverseShift(const Point2D &irOffset)
void SplitAtIntersections(CurveLineObject::Ptr iCurveLinePtr, std::vector< CurveLineObject::Ptr > &orSplitCurves)
virtual void GetClockwisePolygon(std::vector< Point2D > &orPolygon) const
MSynch::SmartPtr< CurveLineObject > Ptr
Definition: CurveLineObject.h:23
#define Int32
Definition: BasicTypes.h:20
virtual void GenerateImageMap(ImageMap &iorImageMap)
void LineToStart(bool iIsLinePath=false) const
void MoveToStart(bool iIsLinePath=false) const
double Evaluate(Int32 iIndependentValue) const
Definition: GraphObject.h:38
virtual bool ObjectInRectangle(const Rect2D &irRect)
std::vector< AreaRec * > ImageMap
Definition: ImageMap.h:99
virtual void Draw() const
void GetApproximatePolyline(std::vector< Point2D > &orPolyline) const
void GetMinMax(Int32 &orMin, Int32 &orMax) const
void CurveToEnd(bool iIsLinePath=false) const
FPoint2D GetStartPoint() const
#define NULL
Definition: Null.h:10
Definition: GraphObjectManager.h:37
CurveLineObject::Ptr Clone() const
FPoint2D GetEndPoint() const
Use four Int32 values to represent a 2D rectangle.
Definition: Rect2D.h:25