scriptup 2024.0.4 → 2024.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/ext/attribute_dictionaries.c +1 -1
  3. data/ext/color.c +3 -3
  4. data/ext/component_definition.c +2 -2
  5. data/ext/definition_list.c +1 -1
  6. data/ext/entity.c +4 -3
  7. data/ext/material.c +4 -7
  8. data/ext/utils.h +4 -4
  9. data/sketchup-sdk-win/binaries/layout/x64/LayOutAPI.dll +0 -0
  10. data/sketchup-sdk-win/binaries/layout/x64/LayOutAPI.lib +0 -0
  11. data/sketchup-sdk-win/binaries/layout/x64/LayOutControllers.dll +0 -0
  12. data/sketchup-sdk-win/binaries/layout/x64/LayOutModel.dll +0 -0
  13. data/sketchup-sdk-win/binaries/layout/x64/LayOutRTF.dll +0 -0
  14. data/sketchup-sdk-win/binaries/layout/x64/LayOutUtils.dll +0 -0
  15. data/sketchup-sdk-win/binaries/layout/x64/SketchUpCommonPreferences.dll +0 -0
  16. data/sketchup-sdk-win/binaries/layout/x64/SketchUpViewerAPI.dll +0 -0
  17. data/sketchup-sdk-win/binaries/layout/x64/SketchUpViewerAPI.lib +0 -0
  18. data/sketchup-sdk-win/binaries/layout/x64/pdflib.dll +0 -0
  19. data/sketchup-sdk-win/headers/LayOutAPI/application/application.h +117 -0
  20. data/sketchup-sdk-win/headers/LayOutAPI/common.h +22 -0
  21. data/sketchup-sdk-win/headers/LayOutAPI/geometry/geometry.h +78 -0
  22. data/sketchup-sdk-win/headers/LayOutAPI/initialize.h +36 -0
  23. data/sketchup-sdk-win/headers/LayOutAPI/layout.h +49 -0
  24. data/sketchup-sdk-win/headers/LayOutAPI/model/angulardimension.h +468 -0
  25. data/sketchup-sdk-win/headers/LayOutAPI/model/autotextdefinition.h +569 -0
  26. data/sketchup-sdk-win/headers/LayOutAPI/model/autotextdefinitionlist.h +79 -0
  27. data/sketchup-sdk-win/headers/LayOutAPI/model/connectionpoint.h +107 -0
  28. data/sketchup-sdk-win/headers/LayOutAPI/model/defs.h +42 -0
  29. data/sketchup-sdk-win/headers/LayOutAPI/model/dictionary.h +120 -0
  30. data/sketchup-sdk-win/headers/LayOutAPI/model/document.h +864 -0
  31. data/sketchup-sdk-win/headers/LayOutAPI/model/documentexportoptions.h +59 -0
  32. data/sketchup-sdk-win/headers/LayOutAPI/model/ellipse.h +78 -0
  33. data/sketchup-sdk-win/headers/LayOutAPI/model/entity.h +330 -0
  34. data/sketchup-sdk-win/headers/LayOutAPI/model/entityiterator.h +49 -0
  35. data/sketchup-sdk-win/headers/LayOutAPI/model/entitylist.h +114 -0
  36. data/sketchup-sdk-win/headers/LayOutAPI/model/formattedtext.h +397 -0
  37. data/sketchup-sdk-win/headers/LayOutAPI/model/grid.h +251 -0
  38. data/sketchup-sdk-win/headers/LayOutAPI/model/group.h +243 -0
  39. data/sketchup-sdk-win/headers/LayOutAPI/model/image.h +146 -0
  40. data/sketchup-sdk-win/headers/LayOutAPI/model/imagerep.h +109 -0
  41. data/sketchup-sdk-win/headers/LayOutAPI/model/label.h +332 -0
  42. data/sketchup-sdk-win/headers/LayOutAPI/model/layer.h +207 -0
  43. data/sketchup-sdk-win/headers/LayOutAPI/model/layerinstance.h +117 -0
  44. data/sketchup-sdk-win/headers/LayOutAPI/model/layerlist.h +69 -0
  45. data/sketchup-sdk-win/headers/LayOutAPI/model/lineardimension.h +456 -0
  46. data/sketchup-sdk-win/headers/LayOutAPI/model/page.h +261 -0
  47. data/sketchup-sdk-win/headers/LayOutAPI/model/pageinfo.h +372 -0
  48. data/sketchup-sdk-win/headers/LayOutAPI/model/pagelist.h +81 -0
  49. data/sketchup-sdk-win/headers/LayOutAPI/model/path.h +464 -0
  50. data/sketchup-sdk-win/headers/LayOutAPI/model/rectangle.h +240 -0
  51. data/sketchup-sdk-win/headers/LayOutAPI/model/referenceentity.h +120 -0
  52. data/sketchup-sdk-win/headers/LayOutAPI/model/sketchupmodel.h +624 -0
  53. data/sketchup-sdk-win/headers/LayOutAPI/model/skpfilereference.h +94 -0
  54. data/sketchup-sdk-win/headers/LayOutAPI/model/style.h +1080 -0
  55. data/sketchup-sdk-win/headers/LayOutAPI/model/table.h +470 -0
  56. data/sketchup-sdk-win/headers/LayOutAPI/model/typed_value.h +156 -0
  57. metadata +50 -2
@@ -0,0 +1,468 @@
1
+ // Copyright 2016 Trimble Navigation Ltd. All Rights Reserved.
2
+ // This file is intended for public distribution.
3
+
4
+ #ifndef LAYOUT_MODEL_ANGULARDIMENSION_H_
5
+ #define LAYOUT_MODEL_ANGULARDIMENSION_H_
6
+
7
+ #include <LayOutAPI/common.h>
8
+ #include <LayOutAPI/geometry/geometry.h>
9
+ #include <LayOutAPI/model/defs.h>
10
+
11
+ /**
12
+ @struct LOAngularDimensionRef
13
+ @brief References an angular dimension entity. An angular dimension is composed
14
+ of the following sub-entities:
15
+ - two 'extension lines' that extend from the entity being dimensioned.
16
+ - a 'dimension line' connecting the ends of the leaders.
17
+ (this may be represented by one or two paths depending on appearance.)
18
+ - an optional 'leader line' that is used for small dimensions.
19
+ - a 'dimension text' that displays the dimension's text.
20
+
21
+ There are seven points that may be modified for an angular dimension:
22
+ - two 'connection points' that define the start and end of the
23
+ dimension.
24
+ - two 'extent points' that define the start and end of the dimension
25
+ line and are the ends of the two extension lines.
26
+ - two 'offset points' that define the starting points of the extension
27
+ lines.
28
+ - one 'arc center point' that defines the center of the dimension, where
29
+ the extension lines intersect.
30
+ @since LayOut 2017, API 2.0
31
+ */
32
+
33
+ #ifdef __cplusplus
34
+ extern "C" {
35
+ #endif // __cplusplus
36
+
37
+ /**
38
+ @enum LOAngularDimensionLeaderLineType
39
+ @brief Defines the different types of leader lines for an angular dimension
40
+ entity.
41
+ @since LayOut 2017, API 2.0
42
+ */
43
+ typedef enum {
44
+ LOAngularDimensionLeaderLineType_SingleSegment = 0, ///< Single segment leader line.
45
+ LOAngularDimensionLeaderLineType_TwoSegment, ///< Two segment leader line.
46
+ LOAngularDimensionLeaderLineType_Bezier, ///< Curved Bezier leader line.
47
+ LOAngularDimensionLeaderLineType_Hidden, ///< No visible leader line.
48
+ LONumAngularDimensionLeaderLineTypes
49
+ } LOAngularDimensionLeaderLineType;
50
+
51
+ /**
52
+ @brief Creates a new disconnected angular dimension object. The arc center point
53
+ is defined implicitly by the intersection of the two extension lines, and
54
+ the radius is defined implicitly by the distance of the extent points
55
+ from the arc center point. If the extent points are not equidistant from
56
+ the arc center point, then the end extent point is adjusted
57
+ automatically.
58
+ @since LayOut 2017, API 2.0
59
+ @param[out] dimension The angular dimension object
60
+ @param[in] start_point Where the dimension should start
61
+ @param[in] end_point Where the dimension should end
62
+ @param[in] start_extent_point The extent point where the dimension line should
63
+ start
64
+ @param[in] end_extent_point The extent point where the dimension line should
65
+ end
66
+ @param[in] inner_angle Whether or not the dimension should measure the
67
+ inner angle. If false, it will measure the outer
68
+ angle.
69
+ @return
70
+ - \ref SU_ERROR_NONE on success
71
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if dimension is NULL
72
+ - \ref SU_ERROR_OVERWRITE_VALID if *dimension already refers to a valid object
73
+ - \ref SU_ERROR_NULL_POINTER_INPUT if start_point is NULL
74
+ - \ref SU_ERROR_NULL_POINTER_INPUT if end_point is NULL
75
+ - \ref SU_ERROR_NULL_POINTER_INPUT if start_extent_point is NULL
76
+ - \ref SU_ERROR_NULL_POINTER_INPUT if end_extent_point is NULL
77
+ */
78
+ LO_RESULT LOAngularDimensionCreate(
79
+ LOAngularDimensionRef* dimension, const LOPoint2D* start_point, const LOPoint2D* end_point,
80
+ const LOPoint2D* start_extent_point, const LOPoint2D* end_extent_point, bool inner_angle);
81
+
82
+ /**
83
+ @brief Adds a reference to an angular dimension object.
84
+ @since LayOut 2017, API 2.0
85
+ @param[in] dimension The angular dimension object.
86
+ @return
87
+ - \ref SU_ERROR_NONE on success
88
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
89
+ */
90
+ LO_RESULT LOAngularDimensionAddReference(LOAngularDimensionRef dimension);
91
+
92
+ /**
93
+ @brief Releases an angular dimension object. The object will be invalidated if
94
+ releasing the last reference.
95
+ @since LayOut 2017, API 2.0
96
+ @param[in] dimension The angular dimension object.
97
+ @return
98
+ - \ref SU_ERROR_NONE on success
99
+ - \ref SU_ERROR_NULL_POINTER_INPUT if dimension is NULL
100
+ - \ref SU_ERROR_INVALID_INPUT if *dimension does not refer to a valid object
101
+ */
102
+ LO_RESULT LOAngularDimensionRelease(LOAngularDimensionRef* dimension);
103
+
104
+ /**
105
+ @brief Converts from a \ref LOEntityRef to a \ref LOAngularDimensionRef.
106
+ This is essentially a downcast operation so the given \ref LOEntityRef
107
+ must be convertible to a \ref LOAngularDimensionRef.
108
+ @since LayOut 2017, API 2.0
109
+ @param[in] entity The entity object.
110
+ @return
111
+ - The converted \ref LOAngularDimensionRef if the downcast operation succeeds
112
+ - If not, the returned reference will be invalid
113
+ */
114
+ LO_EXPORT LOAngularDimensionRef LOAngularDimensionFromEntity(LOEntityRef entity);
115
+
116
+ /**
117
+ @brief Converts from a \ref LOAngularDimensionRef to a \ref LOEntityRef.
118
+ This is essentially an upcast operation.
119
+ @since LayOut 2017, API 2.0
120
+ @param[in] dimension The angular dimension object.
121
+ @return
122
+ - The converted \ref LOEntityRef if dimension is a valid object
123
+ - If not, the returned reference will be invalid
124
+ */
125
+ LO_EXPORT LOEntityRef LOAngularDimensionToEntity(LOAngularDimensionRef dimension);
126
+
127
+ /**
128
+ @brief Creates the entities that represent the dimension in its exploded form
129
+ and adds them to a \ref LOEntityListRef. It is NOT necessary to
130
+ explicitly release these entities, since \ref LOEntityListRef itself
131
+ adds a reference to the entities and will release them when they are
132
+ removed from the list or when the list is released. Depending on the
133
+ appearance of the dimension being exploded, this may return anywhere from
134
+ four to six entities. Start extension line, end extension line,
135
+ one or two dimension lines, dimension text, optional leader line.
136
+ @since LayOut 2017, API 2.0
137
+ @param[in] dimension The angular dimension object.
138
+ @param[in] entity_list The entity list object to add the new entities to.
139
+ @return
140
+ - \ref SU_ERROR_NONE on success
141
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
142
+ - \ref SU_ERROR_INVALID_INPUT if entity_list does not refer to a valid object
143
+ */
144
+ LO_RESULT LOAngularDimensionGetExplodedEntities(
145
+ LOAngularDimensionRef dimension, LOEntityListRef entity_list);
146
+
147
+ /**
148
+ @brief Gets whether or not the dimension text uses custom text. When
149
+ true, the dimension text will display a custom string that doesn't
150
+ change. When false, the dimension text will display the length
151
+ measurement and will update automatically.
152
+ @since LayOut 2017, API 2.0
153
+ @param[in] dimension The angular dimension object.
154
+ @param[out] use_custom_text Whether the dimension uses custom text.
155
+ @return
156
+ - \ref SU_ERROR_NONE on success
157
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
158
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if use_auto_text is NULL
159
+ */
160
+ LO_RESULT LOAngularDimensionGetUsesCustomText(
161
+ LOAngularDimensionRef dimension, bool* use_custom_text);
162
+
163
+ /**
164
+ @brief Sets whether or not the dimension text uses custom text. When true, the
165
+ dimension text will display a custom string that doesn't change. When
166
+ false, the dimension text will display the length measurement and will
167
+ update automatically.
168
+ @since LayOut 2017, API 2.0
169
+ @param[in] dimension The angular dimension object.
170
+ @param[in] use_custom_text Whether or not the dimension should use custom text.
171
+ @return
172
+ - \ref SU_ERROR_NONE on success
173
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
174
+ - \ref SU_ERROR_LAYER_LOCKED if dimension is on a locked layer
175
+ - \ref SU_ERROR_ENTITY_LOCKED if dimension is locked
176
+ */
177
+ LO_RESULT LOAngularDimensionSetUsesCustomText(
178
+ LOAngularDimensionRef dimension, bool use_custom_text);
179
+
180
+ /**
181
+ @brief Creates a copy of the dimension text's \ref LOFormattedTextRef object.
182
+ @note With the addition of auto-text in dimensions for LayOut 2019.2, the
183
+ copy of the dimension text incorrectly provided the plain text when
184
+ requesting the display text. This has been fixed in LayOut 2020.1, API 5.1.
185
+ @since LayOut 2017, API 2.0
186
+ @param[in] dimension The angular dimension object.
187
+ @param[out] text The formatted text object.
188
+ @return
189
+ - \ref SU_ERROR_NONE on success
190
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
191
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if text is NULL
192
+ - \ref SU_ERROR_OVERWRITE_VALID if *text already refers to a valid object
193
+ */
194
+ LO_RESULT LOAngularDimensionCreateDimensionTextCopy(
195
+ LOAngularDimensionRef dimension, LOFormattedTextRef* text);
196
+
197
+ /**
198
+ @brief Sets the text of the dimension from a \ref LOFormattedTextRef object.
199
+ The dimension lines may be adjusted if the text has been re-positioned.
200
+ @since LayOut 2017, API 2.0
201
+ @param[in] dimension The angular dimension object.
202
+ @param[in] text The formatted text object.
203
+ @return
204
+ - \ref SU_ERROR_NONE on success
205
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
206
+ - \ref SU_ERROR_INVALID_INPUT if text does not refer to a valid object
207
+ - \ref SU_ERROR_LAYER_LOCKED if dimension is on a locked layer
208
+ - \ref SU_ERROR_ENTITY_LOCKED if dimension is locked
209
+ */
210
+ LO_RESULT LOAngularDimensionSetDimensionText(
211
+ LOAngularDimensionRef dimension, LOFormattedTextRef text);
212
+
213
+ /**
214
+ @brief Gets the type of leader line the angular dimension is using.
215
+ @since LayOut 2017, API 2.0
216
+ @param[in] dimension The angular dimension object.
217
+ @param[out] leader_line_type The leader line type.
218
+ @return
219
+ - \ref SU_ERROR_NONE on success
220
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
221
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if leader_line_type is NULL
222
+ */
223
+ LO_RESULT LOAngularDimensionGetLeaderLineType(
224
+ LOAngularDimensionRef dimension, LOAngularDimensionLeaderLineType* leader_line_type);
225
+
226
+ /**
227
+ @brief Sets the type of leader line the angular dimension is using. New control
228
+ points will be generated if changing to a two segment or bezier leader
229
+ line type. Setting the leader line type to \ref
230
+ LOAngularDimensionLeaderLineType_Hidden will not move the dimension text.
231
+ @since LayOut 2017, API 2.0
232
+ @param[in] dimension The angular dimension object.
233
+ @param[in] leader_line_type The leader line type.
234
+ @return
235
+ - \ref SU_ERROR_NONE on success
236
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
237
+ - \ref SU_ERROR_OUT_OF_RANGE if leader_line_type is not a valid value
238
+ - \ref SU_ERROR_LAYER_LOCKED if dimension is on a locked layer
239
+ - \ref SU_ERROR_ENTITY_LOCKED if dimension is locked
240
+ */
241
+ LO_RESULT LOAngularDimensionSetLeaderLineType(
242
+ LOAngularDimensionRef dimension, LOAngularDimensionLeaderLineType leader_line_type);
243
+
244
+ /**
245
+ @brief Gets the page location for the first connection.
246
+ @since LayOut 2017, API 2.0
247
+ @param[in] dimension The angular dimension object.
248
+ @param[out] point The position of the first connection point.
249
+ @return
250
+ - \ref SU_ERROR_NONE on success
251
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
252
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if point is NULL
253
+ */
254
+ LO_RESULT LOAngularDimensionGetStartConnectionPoint(
255
+ LOAngularDimensionRef dimension, LOPoint2D* point);
256
+
257
+ /**
258
+ @brief Sets the page location for the first connection.
259
+ @since LayOut 2017, API 2.0
260
+ @param[in] dimension The angular dimension object.
261
+ @param[in] point The position for the first connection point.
262
+ @return
263
+ - \ref SU_ERROR_NONE on success
264
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
265
+ - \ref SU_ERROR_LAYER_LOCKED if dimension is on a locked layer
266
+ - \ref SU_ERROR_ENTITY_LOCKED if dimension is locked
267
+ */
268
+ LO_RESULT LOAngularDimensionSetStartConnectionPoint(
269
+ LOAngularDimensionRef dimension, const LOPoint2D* point);
270
+
271
+ /**
272
+ @brief Gets the page location for the second connection.
273
+ @since LayOut 2017, API 2.0
274
+ @param[in] dimension The angular dimension object.
275
+ @param[out] point The position of the second control point.
276
+ @return
277
+ - \ref SU_ERROR_NONE on success
278
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
279
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if point is NULL
280
+ */
281
+ LO_RESULT LOAngularDimensionGetEndConnectionPoint(
282
+ LOAngularDimensionRef dimension, LOPoint2D* point);
283
+
284
+ /**
285
+ @brief Sets the page location for the second connection.
286
+ @since LayOut 2017, API 2.0
287
+ @param[in] dimension The angular dimension object.
288
+ @param[in] point The position for the second control point.
289
+ @return
290
+ - \ref SU_ERROR_NONE on success
291
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
292
+ - \ref SU_ERROR_LAYER_LOCKED if dimension is on a locked layer
293
+ - \ref SU_ERROR_ENTITY_LOCKED if dimension is locked
294
+ */
295
+ LO_RESULT LOAngularDimensionSetEndConnectionPoint(
296
+ LOAngularDimensionRef dimension, const LOPoint2D* point);
297
+
298
+ /**
299
+ @brief Gets the page location for the start of the dimension line.
300
+ @since LayOut 2017, API 2.0
301
+ @param[in] dimension The angular dimension object.
302
+ @param[out] point The position of the start of the dimension line.
303
+ @return
304
+ - \ref SU_ERROR_NONE on success
305
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
306
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if point is NULL
307
+ */
308
+ LO_RESULT LOAngularDimensionGetStartExtentPoint(LOAngularDimensionRef dimension, LOPoint2D* point);
309
+
310
+ /**
311
+ @brief Sets the page location for the start of the dimension line. This will
312
+ also adjust the end of the dimension line to maintain the correct
313
+ dimension line length.
314
+ @since LayOut 2017, API 2.0
315
+ @param[in] dimension The angular dimension object.
316
+ @param[in] point The position of the start of the dimension line.
317
+ @return
318
+ - \ref SU_ERROR_NONE on success
319
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
320
+ - \ref SU_ERROR_LAYER_LOCKED if dimension is on a locked layer
321
+ - \ref SU_ERROR_ENTITY_LOCKED if dimension is locked
322
+ */
323
+ LO_RESULT LOAngularDimensionSetStartExtentPoint(
324
+ LOAngularDimensionRef dimension, const LOPoint2D* point);
325
+
326
+ /**
327
+ @brief Gets the page location for the end of the dimension line.
328
+ @since LayOut 2017, API 2.0
329
+ @param[in] dimension The angular dimension object.
330
+ @param[out] point The position of the end of the dimension line.
331
+ @return
332
+ - \ref SU_ERROR_NONE on success
333
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
334
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if point is NULL
335
+ */
336
+ LO_RESULT LOAngularDimensionGetEndExtentPoint(LOAngularDimensionRef dimension, LOPoint2D* point);
337
+
338
+ /**
339
+ @brief Sets the page location for the end of the dimension line. This will
340
+ also adjust the start of the dimension line to maintain the correct
341
+ dimension line length.
342
+ @since LayOut 2017, API 2.0
343
+ @param[in] dimension The angular dimension object.
344
+ @param[in] point The position of the end of the dimension line.
345
+ @return
346
+ - \ref SU_ERROR_NONE on success
347
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
348
+ - \ref SU_ERROR_LAYER_LOCKED if dimension is on a locked layer
349
+ - \ref SU_ERROR_ENTITY_LOCKED if dimension is locked
350
+ */
351
+ LO_RESULT LOAngularDimensionSetEndExtentPoint(
352
+ LOAngularDimensionRef dimension, const LOPoint2D* point);
353
+
354
+ /**
355
+ @brief Gets the page location for the start of the first extension line. The
356
+ first extension line runs from this offset point to the start extent
357
+ point.
358
+ @since LayOut 2017, API 2.0
359
+ @param[in] dimension The angular dimension object.
360
+ @param[out] point The position of the start of the extension line.
361
+ @return
362
+ - \ref SU_ERROR_NONE on success
363
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
364
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if point is NULL
365
+ */
366
+ LO_RESULT LOAngularDimensionGetStartOffsetPoint(LOAngularDimensionRef dimension, LOPoint2D* point);
367
+
368
+ /**
369
+ @brief Gets the page location for the start of the second extension line. The
370
+ second extension line runs from this offset point to the end extent
371
+ point.
372
+ @since LayOut 2017, API 2.0
373
+ @param[in] dimension The angular dimension object.
374
+ @param[out] point The position of the end of the dimension line.
375
+ @return
376
+ - \ref SU_ERROR_NONE on success
377
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
378
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if point is NULL
379
+ */
380
+ LO_RESULT LOAngularDimensionGetEndOffsetPoint(LOAngularDimensionRef dimension, LOPoint2D* point);
381
+
382
+ /**
383
+ @brief Sets the length of the offset from the first connection point to the
384
+ start of the first extension line. The connection and extent points will
385
+ not move.
386
+ @since LayOut 2017, API 2.0
387
+ @param[in] dimension The angular dimension object.
388
+ @param[in] length The length the offset to the extension line should be.
389
+ @return
390
+ - \ref SU_ERROR_NONE on success
391
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
392
+ - \ref SU_ERROR_LAYER_LOCKED if dimension is on a locked layer
393
+ - \ref SU_ERROR_ENTITY_LOCKED if dimension is locked
394
+ */
395
+ LO_RESULT LOAngularDimensionSetStartOffsetLength(LOAngularDimensionRef dimension, double length);
396
+
397
+ /**
398
+ @brief Sets the length of the offset from the second connection point to the
399
+ start of the second extension line. The connection and extent points
400
+ will not move.
401
+ @since LayOut 2017, API 2.0
402
+ @param[in] dimension The angular dimension object.
403
+ @param[in] length The length the offset to the extension line should be.
404
+ @return
405
+ - \ref SU_ERROR_NONE on success
406
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
407
+ - \ref SU_ERROR_LAYER_LOCKED if dimension is on a locked layer
408
+ - \ref SU_ERROR_ENTITY_LOCKED if dimension is locked
409
+ */
410
+ LO_RESULT LOAngularDimensionSetEndOffsetLength(LOAngularDimensionRef dimension, double length);
411
+
412
+ /**
413
+ @brief Gets the page location for the dimension arc center point.
414
+ @since LayOut 2017, API 2.0
415
+ @param[in] dimension The angular dimension object.
416
+ @param[out] point The position of the dimension arc center point.
417
+ @return
418
+ - \ref SU_ERROR_NONE on success
419
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
420
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if point is NULL
421
+ */
422
+ LO_RESULT LOAngularDimensionGetArcCenterPoint(LOAngularDimensionRef dimension, LOPoint2D* point);
423
+
424
+ /**
425
+ @brief Gets the angular dimension's radius. This is the distance from the arc
426
+ center point to the dimension line.
427
+ @since LayOut 2017, API 2.0
428
+ @param[in] dimension The angular dimension object.
429
+ @param[out] radius The dimension radius.
430
+ @return
431
+ - \ref SU_ERROR_NONE on success
432
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
433
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if radius is NULL
434
+ */
435
+ LO_RESULT LOAngularDimensionGetRadius(LOAngularDimensionRef dimension, double* radius);
436
+
437
+ /**
438
+ @brief Sets the angular dimension's radius. This is the distance from the arc
439
+ center point to the dimension line.
440
+ @since LayOut 2017, API 2.0
441
+ @param[in] dimension The angular dimension object.
442
+ @param[in] radius The dimension radius.
443
+ @return
444
+ - \ref SU_ERROR_NONE on success
445
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
446
+ - \ref SU_ERROR_LAYER_LOCKED if dimension is on a locked layer
447
+ - \ref SU_ERROR_ENTITY_LOCKED if dimension is locked
448
+ - \ref SU_ERROR_OUT_OF_RANGE if radius is less than or equal to zero
449
+ */
450
+ LO_RESULT LOAngularDimensionSetRadius(LOAngularDimensionRef dimension, double radius);
451
+
452
+ /**
453
+ @brief Gets the angular dimension's angle. The angle is represented in radians.
454
+ @since LayOut 2017, API 2.0
455
+ @param[in] dimension The angular dimension object.
456
+ @param[out] angle The dimension angle.
457
+ @return
458
+ - \ref SU_ERROR_NONE on success
459
+ - \ref SU_ERROR_INVALID_INPUT if dimension does not refer to a valid object
460
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if angle is NULL
461
+ */
462
+ LO_RESULT LOAngularDimensionGetAngle(LOAngularDimensionRef dimension, double* angle);
463
+
464
+ #ifdef __cplusplus
465
+ } // end extern "C"
466
+ #endif // __cplusplus
467
+
468
+ #endif // LAYOUT_MODEL_ANGULARDIMENSION_H_