CFx SDK Documentation  2020SP3
GiPolyline.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2017, Open Design Alliance (the "Alliance").
3 // All rights reserved.
4 //
5 // This software and its documentation and related materials are owned by
6 // the Alliance. The software may only be incorporated into application
7 // programs owned by members of the Alliance, subject to a signed
8 // Membership Agreement and Supplemental Software License Agreement with the
9 // Alliance. The structure and organization of this software are the valuable
10 // trade secrets of the Alliance and its suppliers. The software is also
11 // protected by copyright law and international treaty provisions. Application
12 // programs incorporating this software must include the following statement
13 // with their copyright notices:
14 //
15 // This application incorporates Teigha(R) software pursuant to a license
16 // agreement with Open Design Alliance.
17 // Teigha(R) Copyright (C) 2002-2017 by Open Design Alliance.
18 // All rights reserved.
19 //
20 // By use of this software, its documentation or related materials, you
21 // acknowledge and accept the above terms.
23 
24 
25 
26 
27 #ifndef __ODGIPOLYLINE_H__
28 #define __ODGIPOLYLINE_H__
29 
30 class OdGeVector3d;
31 class OdGeLineSeg2d;
32 class OdGeLineSeg3d;
33 class OdGeCircArc2d;
34 class OdGeCircArc3d;
35 
36 #include "TD_PackPush.h"
37 
38 #include "Gi/GiExport.h"
39 
49 {
50 public:
52 
53  enum SegType
54  {
55  kLine, // Straight segment with length greater than 0.
56  kArc, // Arc segment with length greater than 0.
57  kCoincident, // Segment with 0 length.
58  kPoint, // Polyline with a single vertex.
59  kEmpty // No vertices are present.
60  };
61 
65  virtual unsigned int numVerts() const = 0;
66 
70  virtual bool isClosed() const = 0;
71 
75  virtual OdGeVector3d normal() const = 0;
76 
80  virtual double thickness() const = 0;
81 
85  virtual double getConstantWidth() const = 0;
86 
90  virtual bool hasWidth() const = 0;
91 
97  virtual bool hasPlinegen() const = 0;
98 
102  virtual double elevation() const = 0;
103 
110  virtual SegType segType(unsigned int index) const = 0;
111 
115  virtual void getLineSegAt(unsigned int index, OdGeLineSeg2d& ln) const = 0;
116 
120  virtual void getLineSegAt(unsigned int index, OdGeLineSeg3d& ln) const = 0;
121 
125  virtual void getArcSegAt(unsigned int index, OdGeCircArc2d& arc) const = 0;
126 
130  virtual void getArcSegAt(unsigned int index, OdGeCircArc3d& arc) const = 0;
131 
135  virtual void getPointAt(unsigned int index, OdGePoint2d& pt) const = 0;
136 
140  virtual double getBulgeAt(unsigned int index) const = 0;
141 
145  virtual void getWidthsAt(unsigned int index, double& startWidth, double& endWidth) const = 0;
146 
151  virtual OdRxObjectPtr getDbPolyline() const = 0;
152 };
153 
155 
156 #include "TD_PackPop.h"
157 
158 #endif // __ODGIPOLYLINE_H__
159 
OdGiPolyline::SegType
SegType
Definition: GiPolyline.h:54
OdGeVector3d
Definition: GeVector3d.h:54
OdGiPolyline::getConstantWidth
virtual double getConstantWidth() const =0
OdRxObjectPtr
Definition: RxObject.h:345
OdGiPolyline::kArc
@ kArc
Definition: GiPolyline.h:56
OdGiPolyline::getArcSegAt
virtual void getArcSegAt(unsigned int index, OdGeCircArc2d &arc) const =0
OdGiPolyline::getBulgeAt
virtual double getBulgeAt(unsigned int index) const =0
OdGiPolyline::kLine
@ kLine
Definition: GiPolyline.h:55
OdRxObject
Definition: RxObject.h:564
OdGiPolyline::getLineSegAt
virtual void getLineSegAt(unsigned int index, OdGeLineSeg3d &ln) const =0
OdGiPolyline::getDbPolyline
virtual OdRxObjectPtr getDbPolyline() const =0
OdGiPolyline::getLineSegAt
virtual void getLineSegAt(unsigned int index, OdGeLineSeg2d &ln) const =0
OdGiPolyline::thickness
virtual double thickness() const =0
OdGiPolyline
Definition: GiPolyline.h:49
TD_PackPop.h
OdGiPolyline::getArcSegAt
virtual void getArcSegAt(unsigned int index, OdGeCircArc3d &arc) const =0
ODGI_EXPORT
#define ODGI_EXPORT
Definition: GiExport.h:35
OdGiPolyline::kCoincident
@ kCoincident
Definition: GiPolyline.h:57
OdGeLineSeg2d
Definition: GeLineSeg2d.h:42
index
GLuint index
Definition: gles2_ext.h:265
OdGiPolyline::ODRX_DECLARE_MEMBERS
ODRX_DECLARE_MEMBERS(OdGiPolyline)
OdGeCircArc2d
Definition: GeCircArc2d.h:47
OdGiPolyline::hasPlinegen
virtual bool hasPlinegen() const =0
OdSmartPtr
Definition: SmartPtr.h:58
OdGiPolyline::getWidthsAt
virtual void getWidthsAt(unsigned int index, double &startWidth, double &endWidth) const =0
TD_PackPush.h
OdGiPolylinePtr
OdSmartPtr< OdGiPolyline > OdGiPolylinePtr
Definition: GiPolyline.h:154
OdGiPolyline::normal
virtual OdGeVector3d normal() const =0
OdGiPolyline::kPoint
@ kPoint
Definition: GiPolyline.h:58
GiExport.h
OdGiPolyline::elevation
virtual double elevation() const =0
OdGeLineSeg3d
Definition: GeLineSeg3d.h:44
OdGiPolyline::hasWidth
virtual bool hasWidth() const =0
OdGiPolyline::numVerts
virtual unsigned int numVerts() const =0
OdGiPolyline::segType
virtual SegType segType(unsigned int index) const =0
OdGiPolyline::isClosed
virtual bool isClosed() const =0
OdGiPolyline::getPointAt
virtual void getPointAt(unsigned int index, OdGePoint2d &pt) const =0
OdGeCircArc3d
Definition: GeCircArc3d.h:48
OdGePoint2d
Definition: GePoint2d.h:60