22 Represents a 3d boundary loop curve
27 #if defined(ON_DLL_EXPORTS) || defined(ON_DLL_IMPORTS)
34 void*
operator new(std::size_t);
35 void operator delete(
void*);
38 void*
operator new[] (std::size_t);
39 void operator delete[] (
void*);
42 void*
operator new(std::size_t,
void*);
43 void operator delete(
void*,
void*);
59 ON_BOOL32 IsValid(
ON_TextLog* text_log = NULL )
const;
86 bool SetCurve(
const ON_Curve& curve);
94 eLoopType Type()
const;
102 void SetType( eLoopType type);
115 Represents one line of a hatch pattern
116 Similar to AutoCAD's .pat file definition
117 ON_HatchLine's are used by ON_HatchPattern
118 to specify the dashes and offset patterns of the lines.
120 Each line has the following information:
121 Angle is the direction of the line CCW from the x axis
122 The first line origin is at base
123 Each line repetition is offset by offset from the previous line
124 offset.x is parallel to the line and
125 offset.y is perpendicular to the line
126 The base and offset values are rotated by the line's angle to
127 produce a location in the hatch pattern's coordinate system
128 There can be gaps and dashes specified for drawing the line
130 If there are no dashes, the line is solid
131 Negative length dashes are gaps
132 Positive length dashes are drawn as line segments
150 ON_BOOL32 IsValid(
ON_TextLog* text_log = NULL )
const;
166 double Angle()
const;
176 void SetAngle(
double angle);
224 int DashCount()
const;
234 double Dash(
int)
const;
242 void AppendDash(
double dash);
276 double GetPatternLength()
const;
288 #if defined(ON_DLL_TEMPLATE)
292 #pragma warning( push )
293 #pragma warning( disable : 4231 )
296 #pragma warning( pop )
303 Fill definition for a hatch
305 The hatch will be one of
306 ON_Hatch::ftLines - pat file style definition
307 ON_Hatch::ftGradient - uses a color function
308 ON_Hatch::ftSolid - uses entity color
331 ON_BOOL32 IsValid(
ON_TextLog* text_log = NULL )
const;
348 eFillType FillType()
const;
356 void SetFillType( eFillType type);
365 void SetName(
const wchar_t* pName);
366 void SetName(
const char* pName);
382 const wchar_t* Name()
const;
391 void SetDescription(
const wchar_t* pDescription);
392 void SetDescription(
const char* pDescription);
400 void GetDescription(
ON_wString&
string)
const;
409 const wchar_t* Description()
const;
418 void SetIndex(
int index);
438 int HatchLineCount()
const;
471 bool RemoveHatchLine(
int index);
482 void RemoveAllHatchLines();
514 Represents a hatch in planar boundary loop or loops
515 This is a 2d entity with a plane defining a local coordinate system
516 The loops, patterns, angles, etc are all in this local coordinate system
518 The ON_Hatch object manages the plane and loop array
519 Fill definitions are in the ON_HatchPattern or class derived from ON_HatchPattern
520 ON_Hatch has an index to get the pattern definition from the pattern table
534 virtual ON_Hatch* DuplicateHatch()
const;
538 ON_BOOL32 IsValid(
ON_TextLog* text_log = NULL )
const;
542 ON::object_type ObjectType()
const;
549 int Dimension()
const;
565 ON_BOOL32 GetBBox(
double*,
double*, ON_BOOL32 =
false)
const;
583 bool GetTightBoundingBox(
585 int bGrowBox =
false,
602 ON_BOOL32 Transform(
const ON_Xform&);
622 double pattern_rotation,
623 double pattern_scale);
641 void SetPlane(
const ON_Plane& plane);
653 double PatternRotation()
const;
665 void SetPatternRotation(
double rotation);
677 double PatternScale()
const;
689 void SetPatternScale(
double scale);
698 int LoopCount()
const;
721 bool InsertLoop(
int index,
732 bool RemoveLoop(
int index);
755 ON_Curve* LoopCurve3d(
int index)
const;
764 int PatternIndex()
const;
773 void SetPatternIndex(
int index);
828 class ON_HatchExtra* HatchExtension();
ON_SimpleArray< double > m_dashes
ON_UUID m_hatchpattern_id
ON_wString m_hatchpattern_name
double m_pattern_rotation
ON_ClassArray< ON_HatchLine > m_lines
ON_SimpleArray< ON_HatchLoop * > m_loops