• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

DomCR / ACadSharp / 10546434957

25 Aug 2024 11:09AM UTC coverage: 75.832% (-0.2%) from 75.987%
10546434957

push

github

web-flow
Merge pull request #428 from DomCR/UnknownNonGraphicalObject

Unknown None Graphical Object

4853 of 7047 branches covered (68.87%)

Branch coverage included in aggregate %.

54 of 62 new or added lines in 11 files covered. (87.1%)

69 existing lines in 25 files now uncovered.

19285 of 24784 relevant lines covered (77.81%)

33698.64 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

67.69
/src/ACadSharp/Objects/MultiLeaderAnnotContext.cs
1
using System.Collections.Generic;
2
using System.Linq;
3
using ACadSharp.Attributes;
4
using ACadSharp.Entities;
5
using ACadSharp.Tables;
6

7
using CSMath;
8

9

10
namespace ACadSharp.Objects
11
{
12

13
        /// <summary>
14
        /// This class represents a subset ob the properties of the MLeaderAnnotContext
15
        /// object, that are embedded into the MultiLeader entity.
16
        /// </summary>
17
        public partial class MultiLeaderAnnotContext : NonGraphicalObject
18
        {
UNCOV
19
                public override ObjectType ObjectType => ObjectType.UNLISTED;
×
20

21
                /// <inheritdoc />
UNCOV
22
                public override string SubclassMarker => DxfSubclassMarker.MultiLeaderAnnotContext;
×
23

24
                /// <inheritdoc />
UNCOV
25
                public override string ObjectName => DxfFileToken.ObjectMLeaderContextData;
×
26

27

28
                /// <summary>
29
                /// Gets the list of <see cref="LeaderRoot"/> objects of the multileader.
30
                /// </summary>
31
                /// <remarks>
32
                /// A <see cref="MultiLeader"/> can have one or two leader roots having one ore more
33
                /// leader lines each.
34
                /// </remarks>
35
                public IList<LeaderRoot> LeaderRoots { get; } = new List<LeaderRoot>();
322✔
36

37
                /// <summary>
38
                /// Gets or sets a scale factor (see <see cref="MultiLeaderStyle.ScaleFactor"/>).
39
                /// This property overrides the value from <see cref="MultiLeaderStyle"/>
40
                /// when the <see cref="MultiLeaderPropertyOverrideFlags.ScaleFactor"/> flag is set (see
41
                /// <see cref="MultiLeader.PropertyOverrideFlags"/> property).
42
                /// The scale factor is applied by AutoCAD.
43
                /// </summary>
44
                /// <remarks>
45
                /// <para>
46
                /// The following properties entered in AutoCAD are multiplied with this scale factor:
47
                /// </para>
48
                /// <see cref="ArrowheadSize"/>, <see cref="MultiLeader.LandingDistance"/>, <see cref="LandingGap"/>,
49
                /// <see cref="TextHeight"/>, and the elements of <see cref="BlockContentScale"/>.
50
                /// <para>
51
                /// The <see cref="ContentBasePoint"/> is adjusted.
52
                /// </para>
53
                /// </remarks>
54
                [DxfCodeValue(40)]
55
                public double ScaleFactor { get; set; }
168✔
56

57
                //        TODO
58
                /// <summary>
59
                /// Gets or sets the content base point. This point is identical with the landing end
60
                /// point of the first leader.
61
                /// </summary>
62
                /// <remarks>
63
                /// This point 
64
                /// </remarks>
65
                [DxfCodeValue(10, 20, 30)]
66
                public XYZ ContentBasePoint { get; set; }
168✔
67

68
                /// <summary>
69
                /// Get or sets the text height for the lext label of the multileader
70
                /// (see <see cref="MultiLeaderStyle.TextHeight"/>).
71
                /// This property overrides the value from <see cref="MultiLeaderStyle"/>
72
                /// when the <see cref="MultiLeaderPropertyOverrideFlags.TextHeight"/> flag is set in the
73
                /// <see cref="MultiLeader.PropertyOverrideFlags"/> property.
74
                /// </summary>
75
                /// <value>
76
                /// The value returned is the value entered in AutoCAD multiplied with the <see cref="ScaleFactor"/>.
77
                /// </value>
78
                [DxfCodeValue(41)]
79
                public double TextHeight { get; set; }
168✔
80

81
                /// <summary>
82
                /// Gets or sets the arrowhead size (see <see cref="MultiLeaderStyle.Arrowhead"/>)
83
                /// for every leader line.
84
                /// This property overrides the value from <see cref="MultiLeaderStyle"/>
85
                /// when the <see cref="MultiLeaderPropertyOverrideFlags.ArrowheadSize"/> flag is set in the
86
                /// <see cref="MultiLeader.PropertyOverrideFlags"/> property.
87
                /// </summary>
88
                /// <remarks>
89
                /// <para>
90
                /// The value for all leader lines can be overridden for each individual leader line by the
91
                /// <see cref="LeaderLine.ArrowheadSize"/> property when the
92
                /// <see cref="LeaderLinePropertOverrideFlags.ArrowheadSize"/> flag is set in the 
93
                /// <see cref="LeaderLine.OverrideFlags"/> property.
94
                /// </para><para>
95
                /// This property is also exposed by the <see cref="MultiLeader"/> class
96
                /// (<see cref="MultiLeader.ArrowheadSize"/>).
97
                /// Values should be equal, the value of this property is assumed to be used.
98
                /// </para>
99
                /// </remarks>
100
                /// <value>
101
                /// The value returned is the value entered in AutoCAD multiplied with the <see cref="ScaleFactor"/>.
102
                /// </value>
103
                [DxfCodeValue(140)]
104
                public double ArrowheadSize { get; set; }
168✔
105

106
                /// <summary>
107
                /// Gets or sets the landing gap (see <see cref="MultiLeaderStyle.LandingGap"/>).
108
                /// This property overrides the value from <see cref="MultiLeaderStyle"/>
109
                /// when the <see cref="MultiLeaderPropertyOverrideFlags.LandingGap"/> flag is set (see
110
                /// <see cref="MultiLeader.PropertyOverrideFlags"/> property).
111
                /// </summary>
112
                [DxfCodeValue(145)]
113
                public double LandingGap { get; set; }
168✔
114

115
                /// <summary>
116
                /// Gets or sets the text top attachment type (see <see cref="MultiLeaderStyle.TextLeftAttachment"/>).
117
                /// This property overrides the value from <see cref="MultiLeaderStyle"/>
118
                /// when the <see cref="MultiLeaderPropertyOverrideFlags.TextLeftAttachment"/> flag is set (see
119
                /// <see cref="MultiLeader.PropertyOverrideFlags"/> property).
120
                /// </summary>
121
                /// <remarks>
122
                /// This property is also exposed by the <see cref="MultiLeader"/> class
123
                /// (<see cref="MultiLeader.TextLeftAttachment"/>).
124
                /// Values should be equal, the value of this property is assumed to be used.
125
                /// </remarks>
126
                /// <value>
127
                /// A <see cref="TextAttachmentType"/> having the values 0-8 
128
                /// can be used ("horizontal" attachment types).
129
                /// </value>
130
                [DxfCodeValue(174)]
131
                public TextAttachmentType TextLeftAttachment { get; set; }
168✔
132

133
                /// <summary>
134
                /// Gets or sets the text top attachment type (see <see cref="MultiLeaderStyle.TextRightAttachment"/>).
135
                /// This property overrides the value from <see cref="MultiLeaderStyle"/>
136
                /// when the <see cref="MultiLeaderPropertyOverrideFlags.TextRightAttachment"/> flag is set (see
137
                /// <see cref="MultiLeader.PropertyOverrideFlags"/> property).
138
                /// </summary>
139
                /// <remarks>
140
                /// This property is also exposed by the <see cref="MultiLeader"/> class
141
                /// (<see cref="MultiLeader.TextRightAttachment"/>).
142
                /// Values should be equal, the value of this property is assumed to be used.
143
                /// </remarks>
144
                /// <value>
145
                /// A <see cref="TextAttachmentType"/> having the values 0-8 
146
                /// can be used ("horizontal" attachment types).
147
                /// </value>
148
                [DxfCodeValue(175)]
149
                public TextAttachmentType TextRightAttachment { get; set; }
168✔
150

151
                /// <summary>
152
                /// Gets or sets the text alignment, i.e. the alignment of text lines if the a multiline
153
                /// text label, relative to the <see cref="Location"/>.
154
                /// This property overrides the value from <see cref="MultiLeaderStyle"/>
155
                /// when the <see cref="MultiLeaderPropertyOverrideFlags.TextAlignment"/> flag is set in the
156
                /// <see cref="MultiLeader.PropertyOverrideFlags"/> property.
157
                /// </summary>
158
                /// <remarks><para>
159
                /// This property contains the alignment value specified in AutoCAD rather than
160
                /// <see cref="MultiLeader.TextAlignment"/> and seems always to be consistent with
161
                /// <see cref="TextAttachmentPoint"/>.
162
                /// </para><para>
163
                /// Note that when changing this value the <see cref="Location"/> must be changed
164
                /// accordingly.
165
                /// </para>
166
                /// </remarks>
167
                [DxfCodeValue(176)]
168
                public TextAlignmentType TextAlignment { get; set; }
168✔
169

170
                /// <summary>
171
                /// Gets or sets a value indicating whether the multileader connects to the content-block extents
172
                /// or to the content-block base point.
173
                /// This property overrides the value from <see cref="MultiLeaderStyle"/>
174
                /// when the <see cref="MultiLeaderPropertyOverrideFlags.BlockContentConnection"/> flag is set in the
175
                /// <see cref="MultiLeader.PropertyOverrideFlags"/> property.
176
                /// </summary>
177
                /// <remarks>
178
                /// This property is also exposed by the <see cref="MultiLeader"/> class
179
                /// (<see cref="MultiLeader.BlockContentConnection"/>).
180
                /// Values should be equal, the value of this property is assumed to be used.
181
                /// </remarks>
182
                [DxfCodeValue(177)]
183
                public BlockContentConnectionType BlockContentConnection { get; set; }
168✔
184

185
                //        TODO Check dependency of HasTextContent, HasContentBlock and MultiLeader.ContentType
186
                /// <summary>
187
                /// Gets or sets a value indicating that the mutileader has a text label. 
188
                /// </summary>
189
                [DxfCodeValue(290)]
190
                public bool HasTextContents { get; set; }
322✔
191

192
                /// <summary>
193
                /// Gets or sets a string containg the text tat is to be dispayed a s text label of the
194
                /// multileader.
195
                /// </summary>
196
                /// <remarks>
197
                /// The string may contain MTEXT markups to specify new-lines, font, size, style, etc. 
198
                /// </remarks>
199
                [DxfCodeValue(304)]
200
                public string TextLabel { get; set; }
250✔
201

202
                /// <summary>
203
                /// Gets or sets the normal vector for the text label of the multileader.
204
                /// </summary>
205
                [DxfCodeValue(11, 21, 31)]
206
                public XYZ TextNormal { get; set; }
168✔
207

208
                /// <summary>
209
                /// Gets or sets the <see cref="TextStyle"/> to be used to display the text label of the
210
                /// multileader.
211
                /// This property overrides the value from <see cref="MultiLeaderStyle"/>
212
                /// when the <see cref="MultiLeaderPropertyOverrideFlags.TextStyle"/> flag is set in the
213
                /// <see cref="MultiLeader.PropertyOverrideFlags"/> property.
214
                /// </summary>
215
                /// <remarks>
216
                /// This property is also exposed by the <see cref="MultiLeader"/> class
217
                /// (<see cref="MultiLeader.TextStyle"/>).
218
                /// Values should be equal, the value of this property is assumed to be used.
219
                /// </remarks>
220
                [DxfCodeValue(340)]
221
                public TextStyle TextStyle { get; set; }
168✔
222

223
                /// <summary>
224
                /// Gets or sets the location of the text label of the multileader.
225
                /// </summary>
226
                /// <remarks>
227
                /// This location is evaluated by AutoCAD from the <see cref="Conn"/>
228
                /// </remarks>
229
                [DxfCodeValue(12, 22, 32)]
230
                public XYZ TextLocation { get; set; }
168✔
231

232
                /// <summary>
233
                /// Direction
234
                /// </summary>
235
                [DxfCodeValue(13, 23, 33)]
236
                public XYZ Direction { get; set; }
168✔
237

238
                /// <summary>
239
                /// Gets or sets the rotation of the text label of the multileader.
240
                /// </summary>
241
                /// <value>
242
                /// The rotation angle in radians.
243
                /// </value>
244
                [DxfCodeValue(DxfReferenceType.IsAngle, 42)]
245
                public double TextRotation { get; set; }
168✔
246

247
                //        TODO
248
                /// <summary>
249
                /// Boundary width (DXF Reference: TextWidth)
250
                /// Value seems to be always zero.
251
                /// </summary>
252
                [DxfCodeValue(43)]
253
                public double BoundaryWidth { get; set; }
168✔
254

255
                //        TODO
256
                /// <summary>
257
                /// Boundary height (DXF Reference: TextHeight)
258
                /// Value seems to be always zero.
259
                /// </summary>
260
                [DxfCodeValue(44)]
261
                public double BoundaryHeight { get; set; }
168✔
262

263
                /// <summary>
264
                /// Gets or sets the line-spacing factor for the display of the text label.
265
                /// </summary>
266
                [DxfCodeValue(45)]
267
                public double LineSpacingFactor { get; set; }
168✔
268

269
                /// <summary>
270
                /// Gets or sets the line spacing style for the display of the text label.
271
                /// </summary>
272
                [DxfCodeValue(170)]
273
                public LineSpacingStyle LineSpacing { get; set; }
168✔
274

275
                /// <summary>
276
                /// Gets or sets the color for the display of the text label
277
                /// </summary>
278
                [DxfCodeValue(90)]
279
                public Color TextColor { get; set; }
168✔
280

281
                /// <summary>
282
                /// Gets or sets a value indicating the text attachment point.
283
                /// </summary>
284
                /// <remarks><para>
285
                /// In the Open Design Specification this property is documented as <i>Alignment</i>, in DXF
286
                /// reference as <i>Text Attachment</i>. It is not clear what the meaning of this property
287
                /// is in contrast to the <see cref="TextAlignment"/> property. The value seems to be always
288
                /// consistent.
289
                /// </para><para>
290
                /// This property is also exposed by the <see cref="MultiLeader"/> class
291
                /// (<see cref="MultiLeader.TextAttachmentPoint"/>).
292
                /// Values should be equal, the value of this property is assumed to be used.
293
                /// </para>
294
                /// </remarks>
295
                [DxfCodeValue(171)]
296
                public TextAttachmentPointType TextAttachmentPoint { get; set; }
168✔
297

298
                //        TODO What is exactly ment by "flow direction"?
299
                //                 When the value is not Horizontal line breaks in text label have to be ignored.
300
                //             The value returned by AutoCAD is normally 5. This not a valid enum value.
301
                /// <summary>
302
                /// Gets or sets a value indicating the flow direction.
303
                /// </summary>
304
                [DxfCodeValue(172)]
305
                public FlowDirectionType FlowDirection { get; set; }
168✔
306

307
                //        TODO Create test cases
308
                /// <summary>
309
                /// Background fill color
310
                /// </summary>
311
                [DxfCodeValue(91)]
312
                public Color BackgroundFillColor { get; set; }
168✔
313

314
                //        TODO Create test cases
315
                /// <summary>
316
                /// Background scale factor
317
                /// </summary>
318
                [DxfCodeValue(141)]
319
                public double BackgroundScaleFactor { get; set; }
168✔
320

321
                //        TODO Create test cases
322
                /// <summary>
323
                /// Background transparency
324
                /// </summary>
325
                [DxfCodeValue(92)]
326
                public int BackgroundTransparency { get; set; }
168✔
327

328
                //        TODO Create test cases
329
                /// <summary>
330
                /// Is background fill enabled
331
                /// </summary>
332
                [DxfCodeValue(291)]
333
                public bool BackgroundFillEnabled { get; set; }
168✔
334

335
                //        TODO Create test cases
336
                /// <summary>
337
                /// Is background mask fill on
338
                /// </summary>
339
                [DxfCodeValue(292)]
340
                public bool BackgroundMaskFillOn { get; set; }
168✔
341

342
                //        TODO Create test cases
343
                /// <summary>
344
                /// Column type (ODA writes 0)
345
                /// </summary>
346
                [DxfCodeValue(173)]
347
                public short ColumnType { get; set; }
168✔
348

349
                //        TODO Create test cases
350
                /// <summary>
351
                /// Is text height automatic?
352
                /// </summary>
353
                [DxfCodeValue(293)]
354
                public bool TextHeightAutomatic { get; set; }
168✔
355

356
                //        TODO Create test cases
357
                /// <summary>
358
                /// Column width
359
                /// </summary>
360
                [DxfCodeValue(142)]
361
                public double ColumnWidth { get; set; }
168✔
362

363
                //        TODO Create test cases
364
                /// <summary>
365
                /// Column gutter
366
                /// </summary>
367
                [DxfCodeValue(143)]
368
                public double ColumnGutter { get; set; }
168✔
369

370
                //        TODO Create test cases
371
                /// <summary>
372
                /// Column flow reversed
373
                /// </summary>
374
                [DxfCodeValue(294)]
375
                public bool ColumnFlowReversed { get; set; }
168✔
376

377
                //        TODO Create test cases
378
                /// <summary>
379
                /// Get a list of column sizes
380
                /// </summary>
381
                [DxfCodeValue(144)]
382
                public IList<double> ColumnSizes { get; } = new List<double>();
154✔
383

384
                //        TODO Create test cases
385
                /// <summary>
386
                /// Word break
387
                /// </summary>
388
                [DxfCodeValue(295)]
389
                public bool WordBreak { get; set; }
168✔
390

391
                //        TODO Check dependency of HasTextContent, HasContentBlock and MultiLeader.ContentType
392
                /// <summary>
393
                /// Gets or sets a value indicating that the multileader has a content block.
394
                /// </summary>
395
                [DxfCodeValue(296)]
396
                public bool HasContentsBlock { get; set; }
14✔
397

398
                /// <summary>
399
                /// Gets a <see cref="BlockRecord"/> containing elements
400
                /// to be drawn as content for the multileader.
401
                /// </summary>
402
                [DxfCodeValue(341)]
403
                public BlockRecord BlockContent { get; set; }
×
404

405
                /// <summary>
406
                /// Gets or sets the normal vector for the block content of the multileader.
407
                /// </summary>
408
                [DxfCodeValue(14, 24, 34)]
409
                public XYZ BlockContentNormal { get; set; }
×
410

411
                /// <summary>
412
                /// Gets or sets the location of the böock content of the multileader.
413
                /// </summary>
414
                /// <remarks>
415
                /// This location is evaluated by AutoCAD from the <see cref="Conn"/>
416
                /// </remarks>
417
                [DxfCodeValue(15, 25, 35)]
418
                public XYZ BlockContentLocation { get; set; }
×
419

420
                /// <summary>
421
                /// Gets or sets the scale factor for block content.
422
                /// This property overrides the value from <see cref="MultiLeaderStyle"/>
423
                /// when the <see cref="MultiLeaderPropertyOverrideFlags.BlockContentScale"/> flag is set (see
424
                /// <see cref="MultiLeader.PropertyOverrideFlags"/> property).
425
                /// </summary>
426
                /// <remarks>
427
                /// This property is also exposed by the <see cref="MultiLeader"/> class
428
                /// (<see cref="MultiLeader.BlockContentScale"/>).
429
                /// Values should be equal, the value of this property is assumed to be used.
430
                /// </remarks>
431
                [DxfCodeValue(16, 26, 36)]
432
                public XYZ BlockContentScale { get; set; }
×
433

434
                /// <summary>
435
                /// Gets or sets the rotation of the block content of the multileader.
436
                /// </summary>
437
                /// <remarks>
438
                /// This property is also exposed by the <see cref="MultiLeader"/> class
439
                /// (<see cref="MultiLeader.BlockContentRotation"/>).
440
                /// Values should be equal, the value of this property is assumed to be used.
441
                /// </remarks>
442
                /// <value>
443
                /// The rotation angle in radians.
444
                /// </value>
445
                [DxfCodeValue(DxfReferenceType.IsAngle, 46)]
446
                public double BlockContentRotation { get; set; }
×
447

448
                /// <summary>
449
                /// Gets or sets the block-content color.
450
                /// This property overrides the value from <see cref="MultiLeaderStyle"/>
451
                /// when the <see cref="MultiLeaderPropertyOverrideFlags.BlockContentColor"/> flag is set (see
452
                /// <see cref="MultiLeader.PropertyOverrideFlags"/> property).
453
                /// </summary>
454
                /// <remarks>
455
                /// This property is also exposed by the <see cref="MultiLeader"/> class
456
                /// (<see cref="MultiLeader.BlockContentColor"/>).
457
                /// Values should be equal, the value of this property is assumed to be used.
458
                /// </remarks>
459
                [DxfCodeValue(93)]
460
                public Color BlockContentColor { get; set; }
×
461

462
                /// <summary>
463
                /// Gets a array of 16 doubles containg the complete transformation
464
                /// matrix.
465
                /// </summary>
466
                /// <remarks>
467
                /// <para>
468
                /// Order of transformation is:
469
                /// </para>
470
                /// <list type="ordered">
471
                ///        <item>Rotation,</item>
472
                ///        <item>OCS to WCS (using normal vector),</item>
473
                ///        <item>Scaling (using scale vector),</item>
474
                ///        <item>Translation (using location)</item>
475
                /// </list>
476
                /// </remarks>
477
                [DxfCodeValue(93)]
478
                public Matrix4 TransformationMatrix { get; set; }
×
479

480
                /// <summary>
481
                /// Base point
482
                /// </summary>
483
                [DxfCodeValue(110, 120, 130)]
484
                public XYZ BasePoint { get; set; }
168✔
485

486
                /// <summary>
487
                /// Base direction
488
                /// </summary>
489
                [DxfCodeValue(111, 121, 131)]
490
                public XYZ BaseDirection { get; set; }
168✔
491

492
                /// <summary>
493
                /// Base vertical
494
                /// </summary>
495
                [DxfCodeValue(112, 122, 132)]
496
                public XYZ BaseVertical { get; set; }
168✔
497

498
                /// <summary>
499
                /// Is normal reversed?
500
                /// </summary>
501
                [DxfCodeValue(297)]
502
                public bool NormalReversed { get; set; }
168✔
503

504
                /// <summary>
505
                /// Gets or sets the text top attachment type (see <see cref="MultiLeaderStyle.TextTopAttachment"/>).
506
                /// This property override the value from <see cref="MultiLeaderStyle"/>
507
                /// when the <see cref="MultiLeaderPropertyOverrideFlags.TextTopAttachment"/> flag is set (see
508
                /// <see cref="MultiLeader.PropertyOverrideFlags"/> property).
509
                /// </summary>
510
                /// <remarks>
511
                /// This property is also exposed by the <see cref="MultiLeader"/> class
512
                /// (<see cref="MultiLeader.TextTopAttachment"/>).
513
                /// Values should be equal, the value of this property is assumed to be used.
514
                /// </remarks>
515
                /// <value>
516
                /// A <see cref="TextAttachmentType"/> having the values
517
                ///         9 = Center,
518
                ///         10 = Underline and Center
519
                /// can be used ("vertical" attachment types).
520
                /// </value>
521
                [DxfCodeValue(273)]
522
                public TextAttachmentType TextTopAttachment { get; set; }
100✔
523

524
                /// <summary>
525
                /// Gets or sets the text bottom attachment type (see <see cref="MultiLeaderStyle.TextBottomAttachment"/>).
526
                /// This property override the value from <see cref="MultiLeaderStyle"/>
527
                /// when the <see cref="MultiLeaderPropertyOverrideFlags.TextBottomAttachment"/> flag is set (see
528
                /// <see cref="MultiLeader.PropertyOverrideFlags"/> property).
529
                /// </summary>
530
                /// <remarks>
531
                /// This property is also exposed by the <see cref="MultiLeader"/> class
532
                /// (<see cref="MultiLeader.TextBottomAttachment"/>).
533
                /// Values should be equal, the value of this property is assumed to be used.
534
                /// </remarks>
535
                /// <value>
536
                /// A <see cref="TextAttachmentType"/> having the values
537
                ///         9 = Center,
538
                ///         10 = Underline and Center
539
                /// can be used ("vertical" attachment types).
540
                /// </value>
541
                [DxfCodeValue(272)]
542
                public TextAttachmentType TextBottomAttachment { get; set; }
100✔
543

544
                /// <summary>
545
                /// Initializes a new instance of a <see cref="MultiLeaderAnnotContext"/>.
546
                /// </summary>
547
                public MultiLeaderAnnotContext() : base() { }
462✔
548

549
                public override CadObject Clone()
550
                {
×
551
                        MultiLeaderAnnotContext clone = (MultiLeaderAnnotContext)base.Clone();
×
552

553
                        clone.LeaderRoots.Clear();
×
554
                        foreach (var leaderRoot in this.LeaderRoots)
×
555
                        {
×
556
                                clone.LeaderRoots.Add((LeaderRoot)leaderRoot.Clone());
×
557
                        }
×
558

559
                        return clone;
×
560
                }
×
561
        }
562
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc