FRX SDK Documentation 2025 SP0
Loading...
Searching...
No Matches
AcDbMPolygon.h
Go to the documentation of this file.
1#pragma once
2
3//
4// (C) Copyright 2005-2024 by Graebert GmbH.
5//
6// Permission to use, copy, modify, and distribute this software in
7// object code form for any purpose and without fee is hereby granted,
8// provided that the above copyright notice appears in all copies and
9// that both that copyright notice and the limited warranty and
10// restricted rights notice below appear in all supporting
11// documentation.
12//
13// GRAEBERT PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
14// GRAEBERT SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
15// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. GRAEBERT GMBH
16// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
17// UNINTERRUPTED OR ERROR FREE.
18
20#include "..\acad\Acad.h"
21
22
23class AcDbDwgFiler;
24class AcDbDxfFiler;
25class AcGePoint3d;
26class AcCmColor;
27class AcDbPolyline;
28class AcDb2dPolyline;
30
31const double AcDbMPolygonCrossingFuzz = 1E-6;
32
42
44{
45public:
46
48 {
49 kExterior = 0,
51 kAnnotation
52 };
54 virtual ~AcDbMPolygon(void);
55
56 virtual AcDbHatch* hatch();
57 virtual double elevation() const;
58 virtual Acad::ErrorStatus setElevation( double );
59 virtual AcGeVector3d normal() const;
60 virtual Acad::ErrorStatus setNormal( const AcGeVector3d& );
61 virtual Acad::ErrorStatus evaluateHatch( bool = false );
63 virtual const wchar_t* patternName() const;
64 virtual Acad::ErrorStatus setPattern( AcDbHatch::HatchPatternType, wchar_t const * );
65 virtual double patternAngle() const;
66 virtual Acad::ErrorStatus setPatternAngle( double );
67 virtual double patternSpace() const;
68 virtual Acad::ErrorStatus setPatternSpace( double );
69 virtual double patternScale() const;
70 virtual Acad::ErrorStatus setPatternScale( double );
71 virtual bool patternDouble() const;
72 virtual Acad::ErrorStatus setPatternDouble( bool );
73 virtual int numPatternDefinitions() const;
74 virtual Acad::ErrorStatus getPatternDefinitionAt( int, double& , double&, double&, double&, double&, AcGeDoubleArray& ) const;
75 Acad::ErrorStatus setGradientAngle( double );
76 Acad::ErrorStatus setGradientShift( float );
77 Acad::ErrorStatus setGradientOneColorMode( bool );
78 Acad::ErrorStatus setGradientColors( unsigned int, const AcCmColor*, const double*);
79 Acad::ErrorStatus setGradient( AcDbHatch::GradientPatternType, const wchar_t*& );
80 virtual AcCmColor patternColor() const;
81 virtual Acad::ErrorStatus setPatternColor( const AcCmColor& );
82 virtual double getArea() const;
83 virtual double getPerimeter() const;
85 virtual Acad::ErrorStatus appendLoopFromBoundary( const AcDbCircle*, bool = true, double = AcDbMPolygonCrossingFuzz );
86 virtual Acad::ErrorStatus appendLoopFromBoundary( const AcDbPolyline*, bool = true, double = AcDbMPolygonCrossingFuzz );
87 virtual Acad::ErrorStatus appendLoopFromBoundary( const AcDb2dPolyline*, bool = true, double = AcDbMPolygonCrossingFuzz );
88 virtual int numMPolygonLoops() const;
89 virtual Acad::ErrorStatus getMPolygonLoopAt( int, AcGePoint2dArray&, AcGeDoubleArray& ) const;
90 virtual Acad::ErrorStatus appendMPolygonLoop( const AcGePoint2dArray&, const AcGeDoubleArray&, bool = true, double = AcDbMPolygonCrossingFuzz );
91 virtual Acad::ErrorStatus insertMPolygonLoopAt( int, const AcGePoint2dArray&, const AcGeDoubleArray&, bool = true, double = AcDbMPolygonCrossingFuzz );
92 virtual Acad::ErrorStatus removeMPolygonLoopAt( int );
93 virtual Acad::ErrorStatus getLoopDirection( int, AcDbMPolygon::loopDir& ) const;
94 virtual Acad::ErrorStatus setLoopDirection( int, AcDbMPolygon::loopDir );
95 virtual bool isPointOnLoopBoundary( const AcGePoint3d&, int, double = AcDbMPolygonCrossingFuzz ) const;
97
98 virtual Acad::ErrorStatus dwgInFields( AcDbDwgFiler* );
99 virtual Acad::ErrorStatus dwgOutFields( AcDbDwgFiler* ) const;
100 virtual Acad::ErrorStatus dxfInFields( AcDbDxfFiler* );
101 virtual Acad::ErrorStatus dxfOutFields( AcDbDxfFiler* ) const;
102 virtual Acad::ErrorStatus balanceDisplay(void);
103 virtual bool isBalanced(void) const;
104 virtual Acad::ErrorStatus balanceTree(void);
105
107 virtual int getClosestLoopTo(const AcGePoint3d& ) const;
108 virtual int getParentLoop(int) const;
109 virtual Acad::ErrorStatus getMPolygonTree(AcDbMPolygonNode*&) const;
111 virtual Acad::ErrorStatus createLoopsFromBoundaries(const AcDbObjectIdArray &, AcDbIntArray &, bool = true, double = AcDbMPolygonCrossingFuzz);
112
114
115protected:
117};
const double AcDbMPolygonCrossingFuzz
GradientPatternType
Definition AcDbHatch.h:39
virtual Acad::ErrorStatus setLoopDirection(int, AcDbMPolygon::loopDir)
virtual AcDbHatch::HatchPatternType patternType() const
virtual int numPatternDefinitions() const
virtual bool isBalanced(void) const
virtual Acad::ErrorStatus setPatternAngle(double)
virtual Acad::ErrorStatus removeMPolygonLoopAt(int)
virtual AcGeVector2d getOffsetVector() const
virtual Acad::ErrorStatus balanceTree(void)
virtual int isPointInsideMPolygon(const AcGePoint3d &, AcGeIntArray &, double=AcDbMPolygonCrossingFuzz) const
virtual Acad::ErrorStatus setElevation(double)
virtual double patternSpace() const
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler *) const
virtual double patternScale() const
virtual double getArea() const
virtual int getClosestLoopTo(const AcGePoint3d &) const
virtual Acad::ErrorStatus getMPolygonTree(AcDbMPolygonNode *&) const
virtual const wchar_t * patternName() const
AcDbMPolygon(AcDbSystemInternals *)
virtual Acad::ErrorStatus setPatternColor(const AcCmColor &)
virtual Acad::ErrorStatus setPatternScale(double)
virtual double getPerimeter() const
virtual int numMPolygonLoops() const
virtual Acad::ErrorStatus getPatternDefinitionAt(int, double &, double &, double &, double &, double &, AcGeDoubleArray &) const
Acad::ErrorStatus setGradientShift(float)
virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler *)
Acad::ErrorStatus setGradientAngle(double)
Acad::ErrorStatus setGradient(AcDbHatch::GradientPatternType, const wchar_t *&)
virtual Acad::ErrorStatus setPattern(AcDbHatch::HatchPatternType, wchar_t const *)
virtual Acad::ErrorStatus createLoopsFromBoundaries(const AcDbObjectIdArray &, AcDbIntArray &, bool=true, double=AcDbMPolygonCrossingFuzz)
virtual int getParentLoop(int) const
virtual double elevation() const
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler *) const
virtual void deleteMPolygonTree(AcDbMPolygonNode *) const
virtual AcGeVector3d normal() const
virtual Acad::ErrorStatus dxfInFields(AcDbDxfFiler *)
virtual AcCmColor patternColor() const
AcDbMPolygon(void)
virtual Acad::ErrorStatus appendMPolygonLoop(const AcGePoint2dArray &, const AcGeDoubleArray &, bool=true, double=AcDbMPolygonCrossingFuzz)
virtual Acad::ErrorStatus getLoopDirection(int, AcDbMPolygon::loopDir &) const
virtual Acad::ErrorStatus evaluateHatch(bool=false)
virtual Acad::ErrorStatus appendLoopFromBoundary(const AcDbCircle *, bool=true, double=AcDbMPolygonCrossingFuzz)
ACRX_DECLARE_MEMBERS(AcDbMPolygon)
virtual Acad::ErrorStatus setPatternDouble(bool)
virtual Acad::ErrorStatus balanceDisplay(void)
virtual bool patternDouble() const
virtual Acad::ErrorStatus appendLoopFromBoundary(const AcDbPolyline *, bool=true, double=AcDbMPolygonCrossingFuzz)
virtual ~AcDbMPolygon(void)
virtual Acad::ErrorStatus getMPolygonLoopAt(int, AcGePoint2dArray &, AcGeDoubleArray &) const
virtual Acad::ErrorStatus insertMPolygonLoopAt(int, const AcGePoint2dArray &, const AcGeDoubleArray &, bool=true, double=AcDbMPolygonCrossingFuzz)
virtual Acad::ErrorStatus setNormal(const AcGeVector3d &)
virtual AcDbHatch * hatch()
virtual Acad::ErrorStatus setPatternSpace(double)
virtual double patternAngle() const
Acad::ErrorStatus setGradientColors(unsigned int, const AcCmColor *, const double *)
virtual Acad::ErrorStatus appendLoopFromBoundary(const AcDb2dPolyline *, bool=true, double=AcDbMPolygonCrossingFuzz)
virtual Acad::ErrorStatus createLoops(const AcArray< AcGePoint2dArray, AcArrayObjectCopyReallocator< AcGePoint2dArray > > &, const AcArray< AcGeDoubleArray, AcArrayObjectCopyReallocator< AcGeDoubleArray > > &, AcDbIntArray &, bool=true, double=AcDbMPolygonCrossingFuzz)
Acad::ErrorStatus setGradientOneColorMode(bool)
virtual bool isPointOnLoopBoundary(const AcGePoint3d &, int, double=AcDbMPolygonCrossingFuzz) const
AcDbMPolygonNode * mParent
AcArray< AcDbMPolygonNode * > mChildren