Entities
entities/ multileader
#include "dxfio/entities/multileader.hpp"In DxfIO::Entities
struct Gap
A break in a leader line, between two points of one of its segments.
| Field | Type | Meaning |
|---|---|---|
Index | int | The segment the break is in. Group 90. |
Start | Vector | Where the break starts, in world coordinates. Groups 11, 21, 31. |
End | Vector | Where the break ends, in world coordinates. Groups 12, 22, 32. |
struct Stem
A leader line of a MULTILEADER: its vertices, its breaks and what it overrides of its MULTILEADER.
| Field | Type | Meaning |
|---|---|---|
Points | std::vector<Vector> | The vertices, in world coordinates. Groups 10, 20, 30. |
Gaps | std::vector<Gap> | The breaks in its segments, each opened by group 90. |
Index | int | The line's index in its leader. Group 91. |
Color | std::optional<int> | The color of the line, as a packed color, when it has its own. Group 92. |
Kind | std::optional<int> | The line type, when it has its own: 0 invisible, 1 straight, 2 spline. Group 170. |
Linetype | Handle | The linetype of the line, when it has its own. Group 340. |
Lineweight | std::optional<int> | The lineweight of the line, when it has its own. Group 171. |
Arrow | std::optional<double> | The size of the arrowhead, when it has its own. Group 40. |
Head | Handle | The block that draws the arrowhead, when it has its own. Group 341. |
Overrides | std::optional<int> | Which properties the line has of its own, as bits. Group 94. |
struct Span
A break in the dogleg of a leader.
| Field | Type | Meaning |
|---|---|---|
Start | Vector | Where the break starts, in world coordinates. Groups 12, 22, 32. |
End | Vector | Where the break ends, in world coordinates. Groups 13, 23, 33. |
struct Branch
A leader of a MULTILEADER: its landing, its dogleg and the leader lines that run from it.
| Field | Type and default | Meaning |
|---|---|---|
Lasting | bool{true} | Whether the point the lines end at is set. Group 290. |
Bent | bool{true} | Whether the direction of the dogleg is set. Group 291. |
Last | Vector | The point the leader lines end at, where the landing starts, in world coordinates. Groups 10, 20, 30. |
Dogleg | Vector{.X = 1} | The direction of the dogleg. Groups 11, 21, 31. |
Spans | std::vector<Span> | The breaks in the dogleg, each opened by group 12. |
Index | int | The leader's index. Group 90. |
Length | double | The length of the dogleg. Group 40. |
Stems | std::vector<Stem> | The leader lines, each between group 304 LEADER_LINE{ and group 305. |
Attachment | int | How the leader attaches to the content: 0 horizontally, 1 vertically. Group 271, from R2010. |
struct Note
The context data of a MULTILEADER: where its content and leaders lie, and how its text or block is drawn.
| Field | Type and default | Meaning |
|---|---|---|
Scale | double{1} | The overall scale of the content. Group 40. |
Base | Vector | The base point of the content, in world coordinates. Groups 10, 20, 30. |
Height | double | The height of the text. Group 41. |
Arrow | double | The size of the arrowheads. Group 140. |
Landing | double | The gap between the landing and the text. Group 145. |
Left | int{1} | How text attaches to a leader on its left. Group 174. |
Right | int{1} | How text attaches to a leader on its right. Group 175. |
Align | int | How the text is aligned. Group 176. |
Attach | int | How the content attaches, as AutoCAD records it. Group 177. |
Texted | bool | Whether the content is text, which the groups from Text to Breaks then describe. Group 290. |
Text | std::string | What the text says, with its MTEXT formatting codes. Group 304. |
Normal | Vector{Up} | The normal of the text's plane. Groups 11, 21, 31. |
Style | Handle | The text style. Group 340. |
Location | Vector | Where the text lies, in world coordinates. Groups 12, 22, 32. |
Direction | Vector{.X = 1} | The direction of the text. Groups 13, 23, 33. |
Rotation | double | The rotation of the text. Group 42. |
Width | double | The width of the text's frame. Group 43. |
Tall | double | The height of the text's frame. Group 44. |
Spacing | double{1} | The line spacing, as a factor of the default. Group 45. |
Spaced | int{1} | The line spacing style: 1 at least, 2 exactly. Group 170. |
Color | int{Inherited} | The color of the text, as a packed color. Group 90. |
Attachment | int{1} | The attachment point of the text, as an MTEXT's group 71 gives it. Group 171. |
Flow | int{5} | The drawing direction of the text, as an MTEXT's group 72 gives it. Group 172. |
Background | int{Inherited} | The color of the background, as a packed color. Group 91. |
Margin | double | How far the background reaches past the text, as a factor of the letter height. Group 141. |
Transparency | int | The transparency of the background. Group 92. |
Backed | bool | Whether the text has a background fill. Group 291. |
Filled | bool | Whether the background is filled with the drawing window's color. Group 292. |
Columns | int | The columns: 0 none, 1 static, 2 dynamic. Group 173. |
Grows | bool | Whether the height of the text's frame follows the text. Group 293. |
Column | double | The width of a column. Group 142. |
Gutter | double | The gap between columns. Group 143. |
Reversed | bool | Whether the text flows through the columns in reverse. Group 294. |
Heights | std::vector<double> | The height of each column. Group 144. |
Breaks | bool | Whether words break at the edge of the frame. Group 295. |
Blocked | bool | Whether the content is a block, which the groups from Block to Frame then describe. Group 296. |
Block | Handle | The block record of the content. Group 341. |
Facing | Vector{Up} | The normal of the block's plane. Groups 14, 24, 34. |
Placed | Vector | Where the block lies, in world coordinates. Groups 15, 25, 35. |
Sized | Vector{.X = 1, .Y = 1, .Z = 1} | The scale of the block along each axis. Groups 16, 26, 36. |
Turned | double | The rotation of the block. Group 46. |
Tint | int{Inherited} | The color of the block, as a packed color. Group 93. |
Frame | Matrix | The block's transformation matrix, its 16 cells each a group 47. |
Origin | Vector | The origin of the MULTILEADER's plane, in world coordinates. Groups 110, 120, 130. |
Across | Vector{.X = 1} | The X axis of the MULTILEADER's plane. Groups 111, 121, 131. |
Along | Vector{.Y = 1} | The Y axis of the MULTILEADER's plane. Groups 112, 122, 132. |
Flipped | bool | Whether the normal of the MULTILEADER's plane is reversed. Group 297. |
Branches | std::vector<Branch> | The leaders, each between group 302 LEADER{ and group 303. |
Bottom | int{9} | How text attaches to a leader below it, 9 at its center. Group 272, from R2010. |
Top | int{9} | How text attaches to a leader above it, 9 at its center. Group 273, from R2010. |
struct Tip
An arrowhead of a MULTILEADER, by the index of the leader line it ends.
| Field | Type | Meaning |
|---|---|---|
Index | int | Which arrowhead of the MULTILEADER this is, by index. Group 94. |
Block | Handle | The block that draws the arrowhead. Group 345. |
struct Label
The value a MULTILEADER gives an attribute of its block.
| Field | Type | Meaning |
|---|---|---|
Definition | Handle | The ATTDEF of the block the value is for. Group 330. |
Index | int | Which attribute of the block the value is for, by index. Group 177. |
Width | double | The width of the attribute's text. Group 44. |
Text | std::string | The value the attribute takes. Group 302. |
struct Callout
The AcDbMLeader subclass of a MULTILEADER: its context data, and what it overrides of its MLEADERSTYLE.
| Field | Type and default | Meaning |
|---|---|---|
Version | int{2} | The version of the MULTILEADER's layout. Group 270, from R2010. |
Context | Note | Where the content and the leaders lie, between group 300 CONTEXT_DATA{ and group 301. |
Style | Handle | The MLEADERSTYLE. Group 340. |
Overrides | int | Which properties of the style the MULTILEADER overrides, as bits. Group 90. |
Line | int{1} | The leader line type: 0 invisible, 1 straight, 2 spline. Group 170. |
Color | int{Inherited} | The color of the leader lines, as a packed color. Group 91. |
Linetype | Handle | The linetype of the leader lines. Group 341. |
Lineweight | int{-2} | The lineweight of the leader lines, as an entity's group 370 gives it. Group 171. |
Landing | bool{true} | Whether the leaders have a landing. Group 290. |
Bent | bool{true} | Whether the leaders have a dogleg. Group 291. |
Length | double | The length of the dogleg. Group 41. |
Arrow | Handle | The block that draws the arrowheads; none for the default arrowhead. Group 342. |
Size | double | The size of the arrowheads. Group 42. |
Content | int{2} | The content: 0 none, 1 a block, 2 an MTEXT, 3 a tolerance. Group 172. |
Lettering | Handle | The text style. Group 343. |
Left | int{1} | How text attaches to a leader on its left. Group 173. |
Right | int{1} | How text attaches to a leader on its right. Group 95. |
Angle | int{1} | How the text is turned: 0 along the last leader segment, 1 horizontal, 2 along it but kept upright. Group 174. |
Align | int | The alignment of the text: 0 left, 1 center, 2 right. Group 175. |
Tint | int{Inherited} | The color of the text, as a packed color. Group 92. |
Framed | bool | Whether the text has a frame. Group 292. |
Block | Handle | The block record of the content. Group 344. |
Shade | int{Inherited} | The color of the block, as a packed color. Group 93. |
Sized | Vector{.X = 1, .Y = 1, .Z = 1} | The scale of the block along each axis. Groups 10, 20, 30. |
Turned | double | The rotation of the block. Group 43. |
Connection | int | Where the block meets the leaders: 0 the center of its extents, 1 its insertion point. Group 176. |
Annotative | bool | Whether the MULTILEADER is annotative. Group 293. |
Tips | std::vector<Tip> | The arrowheads of the leader lines, each opened by group 94. |
Labels | std::vector<Label> | The values of the block's attributes, each opened by group 330. |
Negative | bool | Whether the text runs in the negative direction. Group 294. |
Pinned | int | The alignment of the text while it is edited in place. Group 178. |
Point | int{1} | The attachment point of the text: 1 left, 2 center, 3 right. Group 179. |
Factor | double{1} | The overall scale. Group 45. |
Attachment | int | How text attaches to the leaders: 0 horizontally, 1 vertically. Group 271, from R2010. |
Bottom | int{9} | How text attaches to a leader below it, 9 at its center. Group 272, from R2010. |
Top | int{9} | How text attaches to a leader above it, 9 at its center. Group 273, from R2010. |
Extended | bool | Whether the leaders extend to the text. Group 295, from R2013. |
struct MultiLeaderMULTILEADER
A MULTILEADER: one or more leaders that point from a text, a block or a tolerance.
| Field | Type | Meaning |
|---|---|---|
Record | Entities::Record | The layer, linetype, color and the rest every entity carries. |
Picture | std::string | The proxy graphics, for programs that cannot draw the entity. Group 92, or 160 from R2010, then 310. |
Callout | Boxed<Entities::Callout> | The leaders, their content and what they override of their style, from the AcDbMLeader subclass. |
Constants
Inherited | int = -1073741824 | ByLayer, as a packed color: the color method 0xC0 in the top byte and nothing below it. |