24#ifndef _DBMPOLYGON_H_INCLUDED_
25#define _DBMPOLYGON_H_INCLUDED_
33class OdDbMPolygonCrossing;
40#ifdef MPOLYGON_EXPORTS
41# define MPOLYGON_EXPORT OD_TOOLKIT_EXPORT
43# define MPOLYGON_EXPORT OD_TOOLKIT_IMPORT
318 const double* values );
996 : mLoopIndex(-1), mParent(NULL)
const double OdDbMPolygonCrossingFuzz
OdSmartPtr< OdDbMPolygon > OdDbMPolygonPtr
OdArray< OdGePoint2dArray > OdGePoint2dArrayArray
OdArray< OdDbMPolygonCrossing, OdPlainObjectsAllocator< OdDbMPolygonCrossing > > OdDbMPolygonCrossingArray
void setGradientOneColorMode(bool oneColorMode)
virtual OdResult subTransformBy(const OdGeMatrix3d &xfn)
virtual OdResult createLoops(const OdGePoint2dArrayArray &vertices, const OdArray< OdGeDoubleArray > &bulges, OdIntArray &rejectedObjs, bool excludeCrossing=true, double tol=OdDbMPolygonCrossingFuzz)
virtual bool patternDouble() const
virtual void dxfOutFields(OdDbDxfFiler *pFiler) const
virtual OdResult getMPolygonLoopAt(int loopIndex, OdGePoint2dArray &vertices, OdGeDoubleArray &bulges) const
virtual OdResult dwgInFields(OdDbDwgFiler *pFiler)
virtual OdResult balanceDisplay()
virtual int numMPolygonLoops() const
virtual OdResult balanceTree()
virtual OdResult appendLoopFromBoundary(const OdDb2dPolyline *pPoly, bool excludeCrossing=true, double tol=OdDbMPolygonCrossingFuzz)
virtual double patternScale() const
virtual OdResult getChildLoops(int curLoop, OdGeIntArray &selectedLoopIndexes) const
virtual int getClosestLoopTo(const OdGePoint3d &worldPt) const
virtual double elevation() const
virtual OdDbEntityPtr subSubentPtr(const OdDbFullSubentPath &path) const ODRX_OVERRIDE
virtual OdResult getArea(double &area, bool areaViaHatch=false) const
void setGradientAngle(double angle)
virtual OdDbHatchPtr hatch() const
virtual bool isPointOnLoopBoundary(const OdGePoint3d &worldPt, int loop, double tol=OdDbMPolygonCrossingFuzz) const
void setGradient(OdDbHatch::GradientPatternType gradType, const OdString &gradName)
virtual OdResult appendLoopFromBoundary(const OdDbPolyline *pPoly, bool excludeCrossing=true, double tol=OdDbMPolygonCrossingFuzz)
virtual int getParentLoop(int curLoop) const
virtual void setPatternScale(double scale)
virtual OdResult getMPolygonTree(OdDbMPolygonNode *&loopNode) const
virtual OdResult replaceMPolygonLoopAt(const OdIntArray &loopIndices, const OdGePoint2dArrayArray &vertices, const OdArray< OdGeDoubleArray > &bulges, OdIntArray &rejectedLoop, bool excludeCrossing=true, double tol=OdDbMPolygonCrossingFuzz)
virtual OdResult appendMPolygonLoop(const OdGePoint2dArray &vertices, const OdGeDoubleArray &bulges, bool excludeCrossing=true, double tol=OdDbMPolygonCrossingFuzz)
virtual void setPatternAngle(double angle)
virtual int numPatternDefinitions() const
virtual OdResult createLoopsFromBoundaries(const OdDbObjectIdArray &ids, OdIntArray &rejectedObjs, bool excludeCrossing=true, double tol=OdDbMPolygonCrossingFuzz)
virtual OdResult setLoopDirection(int lindex, OdDbMPolygon::loopDir dir)
virtual void dwgOutFields(OdDbDwgFiler *pFiler) const
virtual OdResult dxfInFields(OdDbDxfFiler *pFiler)
virtual void setPatternColor(const OdCmColor &pc)
virtual void setElevation(double elevation)
void setGradientColors(unsigned int count, const OdCmColor *colors, const double *values)
virtual void getPatternDefinitionAt(int index, double &angle, double &baseX, double &baseY, double &offsetX, double &offsetY, OdGeDoubleArray &dashes) const
virtual OdGeVector3d normal() const
virtual void setPattern(OdDbHatch::HatchPatternType patType, const OdString &patName)
virtual void setPatternDouble(bool isDouble)
virtual OdResult appendLoopFromBoundary(const OdDbCircle *pCircle, bool excludeCrossing=true, double tol=OdDbMPolygonCrossingFuzz)
virtual OdResult insertMPolygonLoopAt(int loopIndex, const OdGePoint2dArray &vertices, const OdGeDoubleArray &bulges, bool excludeCrossing=true, double tol=OdDbMPolygonCrossingFuzz)
virtual OdResult removeMPolygonLoopAt(int loopIndex)
virtual OdResult replaceMPolygonLoopAt(int loopIndex, const OdGePoint2dArray &vertices, const OdGeDoubleArray &bulges, bool excludeCrossing=true, double tol=OdDbMPolygonCrossingFuzz)
virtual OdResult getLoopDirection(int lindex, OdDbMPolygon::loopDir &dir) const
virtual OdString patternName() const
virtual bool isBalanced() const
virtual double getPerimeter() const
virtual OdGeVector2d getOffsetVector() const
virtual double patternSpace() const
ODDB_DECLARE_MEMBERS(OdDbMPolygon)
virtual OdDbHatchPtr hatch()
virtual void deleteMPolygonTree(OdDbMPolygonNode *loopNode) const
virtual OdCmColor patternColor() const
virtual OdResult evaluateHatch(bool bUnderestimateNumLines=false)
virtual OdDbHatch::HatchPatternType patternType() const
virtual void setNormal(const OdGeVector3d &normal)
void setGradientShift(float shiftValue)
virtual bool subWorldDraw(OdGiWorldDraw *pWd) const
virtual double patternAngle() const
virtual OdResult subExplode(OdRxObjectPtrArray &entitySet) const
virtual void saveAs(OdGiWorldDraw *pWd, OdDb::DwgVersion ver) const
virtual void setPatternSpace(double space)
virtual void subSetDatabaseDefaults(OdDbDatabase *pDb, bool doSubents)
virtual int isPointInsideMPolygon(const OdGePoint3d &worldPt, OdGeIntArray &loopsArray, double tol=OdDbMPolygonCrossingFuzz) const
OdDbMPolygonNode * mParent
OdArray< OdDbMPolygonNode * > mChildren