LayOut C API
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
path.h
Go to the documentation of this file.
1 // Copyright 2015 Trimble Navigation Ltd. All rights reserved.
2 // This file is intended for public distribution.
3 
4 #ifndef LAYOUT_MODEL_PATH_H_
5 #define LAYOUT_MODEL_PATH_H_
6 
7 #include <LayOutAPI/common.h>
9 #include <LayOutAPI/model/defs.h>
10 
21 typedef enum {
30 
36 typedef enum {
42 
43 #ifdef __cplusplus
44 extern "C" {
45 #endif // __cplusplus
46 
61 LO_RESULT LOPathCreate(LOPathRef* path, const LOPoint2D* start_point, const LOPoint2D* end_point);
62 
82  LOPathRef* path, const LOPoint2D* start_point, const LOPoint2D* control_point_1,
83  const LOPoint2D* control_point_2, const LOPoint2D* end_point);
84 
97 
110 
127  LOPathRef* path, const LOPoint2D* center_point, double radius, double start_angle,
128  double end_angle);
129 
138 
149 
160 
170 
180 LO_RESULT LOPathGetNumberOfPoints(LOPathRef path, size_t* size);
181 
196  LOPathRef path, size_t points_size, LOPoint2D points[], size_t* number_of_points_copied);
197 
209 LO_RESULT LOPathGetPointAtIndex(LOPathRef path, size_t point_index, LOPoint2D* point);
210 
228  LOPathRef path, size_t pointtypes_size, LOPathPointType pointtypes[],
229  size_t* number_of_pointtypes_copied);
230 
241 LO_RESULT LOPathGetPointTypeAtIndex(LOPathRef path, size_t point_index, LOPathPointType* pointtype);
242 
253 
264 
278 
292 
302 LO_RESULT LOPathGetClosed(LOPathRef path, bool* is_closed);
303 
313 LO_RESULT LOPathGetParametricLength(LOPathRef path, double* parametric_length);
314 
327 LO_RESULT LOPathGetPointAtParameter(LOPathRef path, double parametric_value, LOPoint2D* point);
328 
341 LO_RESULT LOPathGetTangentAtParameter(LOPathRef path, double parametric_value, LOVector2D* tangent);
342 
360 LO_RESULT LOPathGetCircle(LOPathRef path, bool* is_circle, LOPoint2D* center, double* radius);
361 
386  LOPathRef path, bool* is_arc, LOPoint2D* center, double* radius, double* start_angle,
387  double* end_angle);
388 
400 LO_RESULT LOPathAppendLineTo(LOPathRef path, const LOPoint2D* point);
401 
418  LOPathRef path, const LOPoint2D* control_point_1, const LOPoint2D* control_point_2,
419  const LOPoint2D* point);
420 
436 
448 
460 
461 #ifdef __cplusplus
462 } // end extern "C"
463 #endif // __cplusplus
464 #endif // LAYOUT_MODEL_PATH_H_