|
MKI_ENUMDEF_DATA (Basic Classes) Changed in Version 2026.0 |
www.CAD6.com |
C++ Syntaxclass MKI_ENUMDEF_DATA { public:
__int32 m_nEnumData, m_nEnumCount, m_nEnumFlag1, m_nEnumFlag2;
__int64 m_nEnumResult, m_nEnumMode; bool m_fEnumStopped;
MKI_ENUMEFFECT_DATA m_cEffect; MKI_XPROPERTY m_cOriginalXProperty, m_cResolvedXProperty; MKI_DISPLAY_EFFECT m_cOriginalEffect, m_cLayerEffect;
MKI_FONTDEF m_cFont; double m_dLineLengthScale, m_dCharDistance, m_dTabDistance, m_dLineDistance; __int32 m_nTextMode, m_nTextVertical, m_nTextOrder, m_nSystem; MKI_BITMAPREF m_cBitmapRef; MKI_POINTDATA_PTR m_pPointData; MKI_MATRIX_PTR m_pMatrix; MKI_POINT m_cTextPos; __int32 m_nChar; LPCWSTR m_pszText, m_pszTitle, m_pszName;
MKI_ENTITY_OBJECT_PTR m_pObj; MKI_ENTITY_INSTANCE_PTR m_pInst; MKI_ENTITY_BLOCK_PTR m_pBlock; MKI_ENTITY_CLIP_PTR m_pClip; MKI_ENTITY_REF_PTR m_pRef; MKI_ENTITY_PATCH_PTR m_pPatch; MKI_ENTITY_MAPPING_PTR m_pMap; MKI_ENTITY_GROUP_PTR m_pGroup; MKI_ENTITY_HATCH_PTR m_pHatch; MKI_ENTITY_EXT_PTR m_pExt;
MKI_RECT m_cEntityRect; __int32 m_nObjectType;
MKI_HIDELAYERS m_afHideLayers; MKI_LAYERDATA m_cLayerData;
void Init( void ); New in Version 2022.1
bool MKI_RECT_REF f_rRect ); New in Version 2025.0
__int32 MKI_CONST_RECT_REF f_rRect );
__int32 MKI_CONST_RECT_REF f_rRect, MKI_POINTDATA_PTR f_pResult, __int32 f_nSize );
__int32 __int32 f_nStartIndex ) const;
__int32 __int32 f_nStartIndex, MKI_CONST_POINT_REF f_rPoint ) const;
__int32 __int32 f_nStartIndex, MKI_CONST_POINT_REF f_rPoint ) const; };
This structure contains a complete enumeration data description.
Element Descriptionm_nEnumData [__int32] This value indicates what type of data is coded in this structure, see MKI_ENUMDATA_*. m_nEnumCount [__int32] Number of elements currently available. What type of elements are currently available depends on the the value of m_nEnumData. Be sure never to access more elements than stated here! m_nEnumFlag1 [__int32] First enumeration flag as passed to the enumeration procedure that produced this structure (see e.g. MKI_EnumerateAll). m_nEnumFlag2 [__int32] Second enumeration flag as passed to the enumeration procedure that produced this structure (see e.g. MKI_EnumerateAll). m_nEnumResult New in Version 2022.1 [__int64] Current enumeration warnings (see MKI_WARNING_*). You can set bits here to report problems to your calling procedure. m_nEnumMode [__int64] Enumeration mode as passed to the enumeration procedure that produced this structure (see e.g. MKI_EnumerateAll). m_fEnumStopped [bool] Indicates whether the enumeration has been stopped by a callback procedure returning false. m_cEffect New in Version 2026.0 [MKI_ENUMEFFECT_DATA_PTR] Accumulated entity display effect. All colors of entities have to be modified according to those effects before display. m_cEffect is applied before m_cLayerEffect. m_cOriginalXProperty [MKI_XPROPERTY] Extended properties of the original object that is currently being enumerated (valid for MKI_ENUMDATA_CURVE, MKI_ENUMDATA_SURFACE, MKI_ENUMDATA_MARK, MKI_ENUMDATA_CHAR, MKI_ENUMDATA_TEXT and MKI_ENUMDATA_INST). This property set does not contain the final properties of the enumeration data, but the set of extended properties that were used to calculate those final properties. Use these properties if you want to create a new drawing object that has the same or similar properties as the original object. m_cResolvedXProperty [MKI_XPROPERTY] Final extended properties of the current enumeration data resulting from pen and layer property resolving (valid for MKI_ENUMDATA_CURVE, MKI_ENUMDATA_SURFACE, MKI_ENUMDATA_MARK, MKI_ENUMDATA_CHAR, MKI_ENUMDATA_TEXT, MKI_ENUMDATA_INST, MKI_ENUMDATA_INST_START, MKI_ENUMDATA_INST_END, MKI_ENUMDATA_EMBED_START, and MKI_ENUMDATA_EMBED_END). This property set contains the final properties and has been calculated based on the original object properties, the according pen and layer settings, and both entity and layer effects. Use these properties if you want to interpret the properties e.g. during export to a different file format. m_cOriginalEffect New in Version 2026.0 [MKI_DISPLAY_EFFECT] Display effect of the original object that is currently being enumerated (valid for MKI_ENUMDATA_CURVE, MKI_ENUMDATA_SURFACE, MKI_ENUMDATA_MARK, MKI_ENUMDATA_CHAR, MKI_ENUMDATA_TEXT and MKI_ENUMDATA_INST). This effect does not contain any superordinate entity effects or layer effects. Use these effects if you want to create a new drawing object that has the same or similar effects as the original object. m_cLayerEffect New in Version 2026.0 [MKI_DISPLAY_EFFECT_PTR] Layer display effect. All colors of entities have to be modified according to those effects before display. m_cLayerEffect is applied after m_cEffect. m_dLineLengthScale New in Version 2010.2 [double] Relative scaling of line-width-independent line type lengths, if any. Otherwise 1.0. m_cFont [MKI_FONTDEF] Font description of the current enumeration data (valid for MKI_ENUMDATA_CHAR, MKI_ENUMDATA_TEXT and MKI_ENUMDATA_USED_FONT). m_dCharDistance [double] This value determines the gap between two characters (valid for MKI_ENUMDATA_TEXT). This gap is stated relative to the font size. A value of 0.1 at a font size of 10pt will result in a character gap of 1pt. Allowed values are -10.0 to +10.0. The default value for TrueType and device fonts should be 0.0, for internal fonts 0.125. m_dTabDistance [double] This value determines the distance between two tabulators (valid for MKI_ENUMDATA_TEXT). This distance is stated relative to the font size. A value of 4.0 at a font size of 5 mm will result in a tabulator distance of 20 mm. Allowed values are -100.0 to 100.0. The default value is 4.0. m_dLineDistance [double] This value determines the offset between two lines of text, measured from baseline to baseline (valid for MKI_ENUMDATA_TEXT). This offset is stated relative to the font size. A value of 1.2 at a font size of 10pt will lead to a line offset of 12pt. Allowed values are -10.0 to 10.0. The default value is 1.0. m_nTextMode [__int32] This value states the position of the text relative to the insertion point (valid for MKI_ENUMDATA_TEXT) (see MKI_TEXTMODE_*). Block mode is not supported. m_nTextVertical New in Version 6.50 [__int32] This value states the vertical position of the text relative to the insertion point (see MKI_TEXTVERTICAL_*). m_nTextOrder [__int32] This value defines the reading order of the text (valid for MKI_ENUMDATA_TEXT) (see MKI_TEXTORDER_*). m_nSystem New in Version 2017.0 [__int32] Index of the coordinate system the text shall be based on. m_cBitmapRef New in Version 2026.0 [MKI_BITMAPREF] Bitmap reference options. m_pPointData Changed in Version 2021.0 [MKI_POINTDATA_PTR] Definition point coordinates of a curve or mark list, plus point type, handle, and outline index (valid for MKI_ENUMDATA_CURVE, MKI_ENUMDATA_SURFACE and MKI_ENUMDATA_MARK). m_pMatrix [MKI_MATRIX_PTR] Display matrix(es) (valid for MKI_ENUMDATA_CURVE, MKI_ENUMDATA_SURFACE, MKI_ENUMDATA_MARK, MKI_ENUMDATA_CHAR, MKI_ENUMDATA_TEXT, MKI_ENUMDATA_INST, MKI_ENUMDATA_INST_START, MKI_ENUMDATA_INST_END, MKI_ENUMDATA_EMBED_START, MKI_ENUMDATA_EMBED_END, MKI_ENUMDATA_REF, MKI_ENUMDATA_REF_START, MKI_ENUMDATA_REF_END, and MKI_ENUMDATA_BITMAP). Be sure to always apply this matrix if m_nEnumMode includes the MKI_ENUM_MATRIX flag! m_cTextPos New in Version 2024.1 [MKI_POINT] Current text output position (valid for MKI_ENUMDATA_POSITION). m_nChar Changed in Version 2019.1 [__int32] A single UTF-32 character (valid for MKI_ENUMDATA_CHAR). Valid range is 0x00000000 to 0x0010ffff. m_pText Changed in Version 2019.1 [LPCWSTR] Address of a null-terminated UTF-16 character string (valid for MKI_ENUMDATA_TEXT) or library name (valid for MKI_ENUMDATA_INST, MKI_ENUMDATA_INST_START, MKI_ENUMDATA_INST_END, MKI_ENUMDATA_USED_BLOCK, and MKI_ENUMDATA_USED_BITMAP). m_pTitle New in Version 2020.0 [LPCWSTR] Address of a null-terminated UTF-16 library title (valid for MKI_ENUMDATA_INST, MKI_ENUMDATA_INST_START, and MKI_ENUMDATA_INST_END). m_pName [LPCWSTR] Block name (valid for MKI_ENUMDATA_INST, MKI_ENUMDATA_INST_START, MKI_ENUMDATA_INST_END, MKI_ENUMDATA_EMBED_START, MKI_ENUMDATA_EMBED_END, and MKI_ENUMDATA_USED_BLOCK), address of a bitmap file name (valid for MKI_ENUMDATA_BITMAP), or address of a drawing file name (valid for MKI_ENUMDATA_DRAWING). m_pObj [MKI_ENTITY_OBJECT_PTR] Address of a native object (valid for MKI_ENUMDATA_NATIVE_OBJ). m_pInst [MKI_ENTITY_INSTANCE_PTR] Address of a native instance (valid for MKI_ENUMDATA_NATIVE_INST). m_pBlock [MKI_ENTITY_BLOCK_PTR] Address of a native block (valid for MKI_ENUMDATA_NATIVE_BLOCK). m_pClip [MKI_ENTITY_CLIP_PTR] Address of a native clipping surface object (valid for MKI_ENUMDATA_NATIVE_CLIP, MKI_ENUMDATA_CLIP_START, and MKI_ENUMDATA_CLIP_END). m_pRef New in Version 6.20 [MKI_ENTITY_REF_PTR] Address of a native drawing reference object (valid for MKI_ENUMDATA_NATIVE_REF). m_pPatch New in Version 6.31 [MKI_ENTITY_PATCH_PTR] Address of a native patch (valid for MKI_ENUMDATA_NATIVE_PATCH). m_pMap New in Version 6.61 [MKI_ENTITY_MAPPING_PTR] Address of a native mapping (valid for MKI_ENUMDATA_NATIVE_MAP). m_pGroup New in Version 2017.0 [MKI_ENTITY_GROUP_PTR] Address of a native group (valid for MKI_ENUMDATA_NATIVE_GROUP, MKI_ENUMDATA_GROUP_START, and MKI_ENUMDATA_GROUP_END). m_pHatch New in Version 2018.2 [MKI_ENTITY_HATCH_PTR] Address of a native hatching (valid for MKI_ENUMDATA_NATIVE_HATCH, MKI_ENUMDATA_HATCH_START, and MKI_ENUMDATA_HATCH_END). m_pExt [MKI_ENTITY_EXT_PTR] Address of a native extended object (valid for MKI_ENUMDATA_NATIVE_EXT). m_cEntityRect New in Version 2021.1 [MKI_RECT] Surrounding frame of the top-level entity that resulted in this enumeration. This value is valid only if the enumeration was started by one of the following commands: MKI_EnumerateAll, MKI_EnumeratePageRect, MKI_EnumeratePage, MKI_EnumerateEntity. Otherwise, it is undefined. m_nObjectType New in Version 6.0 [__int32] Type of original object that created the given enumeration data. This value is valid only if m_nEnumData has one of the following values: MKI_ENUMDATA_CURVE, MKI_ENUMDATA_SURFACE, MKI_ENUMDATA_MARK, MKI_ENUMDATA_CHAR, MKI_ENUMDATA_TEXT, MKI_ENUMDATA_ENDLESS, MKI_ENUMDATA_BITMAP. Otherwise, it is negative. See MKI_ObjectOpen for a list of all possible object types. m_afHideLayers New in Version 6.61 [MKI_HIDELAYERS] This array contains one bit for each layer indicating if the layer shall be output or not. m_cLayerData New in Version 2016.0 [MKI_LAYERDATA] This array contains currently valid property modifications for all layers as applied by mappings.
CommentIf m_nEnumData is either MKI_ENUMDATA_CURVE, MKI_ENUMDATA_SURFACE, MKI_ENUMDATA_CLIP_START, MKI_ENUMDATA_CLIP_END, MKI_ENUMDATA_HATCH_START, MKI_ENUMDATA_HATCH_END, MKI_ENUMDATA_MAP_START, or MKI_ENUMDATA_MAP_END, this structure describes a "poly-curve".
Such a curve is the standard representation form of all output data created be the serving application. Its structure is based on the structure of Object 12 "Curve" and Object 13 "Surface".
Following is a short description of this object, adapted to the different circumstances. Each point type in PointData[].m_nType is directly corresponding to the point stored in PointData[].m_cPoint. This type of data is resulting from an EnumMode containing at least one of the values MKI_ENUM_LINES, MKI_ENUM_FILLS, MKI_ENUM_ARCS or MKI_ENUM_BEZIERS.
A poly-curve is a collection of several curves, each defining one (open or closed) area. A curve starts with a start-point (type MKI_DB_POINT_START) followed by a sequence of curve elements. Three types of curve elements are available:
Line
Bézier curve
Point = (1-t)³ × Start + 3t(1-t)² × Pivot1 + 3t²(1-t) × Pivot2 + t³ × End (0<=t<=1)
Circular arc
Center.x = 0.5 * ( Start.x + End.x ) - Curvature * ( End.y - Start.y ) Center.y = 0.5 * ( Start.y + End.y ) + Curvature * ( End.x - Start.x )
Each curve ends if either a new curve is started by a new start-point (type MKI_DB_POINT_START) or the complete surface is ended. If EnumData is MKI_ENUMDATA_SURFACE, each curve is defined as closed, i.e. its start-point and end-point are to be connected by a line.
If a filled poly-curve consists of only one curve, simply the inside area of that curve will be filled:
If a filled poly-curve consists of multiple curves they will be filled alternately, i.e. only areas overlapped by an odd number of curve's insides will be filled. If, e.g., a small curve lies inside a large one, this small curve will be transparent, as its inside in overlapped by two curves (even number!):
If a poly-curve is drawn with a non-solid line type, this line type has to be continued along the complete surface. A poly-curve may contain up to 10,000 nested surfaces made of up to MKI_MaxEntityPoints data blocks in total.
|
CAD6interface 2026.0 - Copyright 2026 Malz++Kassner® GmbH