CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
DbPolyline.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2024, 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 Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2024 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 OD_DBPL_H
28#define OD_DBPL_H
29
30#include "TD_PackPush.h"
31
32#include "DbCurve.h"
33#include "Db2dPolyline.h"
34#include "DwgDeclareMembers.h"
35
36class OdDb2dPolyline;
37class OdGeLineSeg2d;
38class OdGeLineSeg3d;
39class OdGeCircArc2d;
40class OdGeCircArc3d;
41
61{
62public:
64
66
99 OdDbEntity* pSource,
100 bool transferId = true);
101
127 OdDb2dPolyline* pDest,
128 bool transferId = true);
129
137 unsigned int vertexIndex,
138 OdGePoint2d& point2d) const;
139
147 unsigned int vertexIndex,
148 OdGePoint3d& point3d) const;
149
150
152 {
153 kLine, // Straight segment with length > 0.
154 kArc, // Arc segment with length > 0.
155 kCoincident, // Segment with length == 0.
156 kPoint, // Polyline with 1 vertex.
157 kEmpty // Polyline with 0 vertices.
158 };
159
177 unsigned int segmentIndex) const;
178
185 unsigned int segmentIndex,
186 OdGeLineSeg2d& line2d) const;
187
194 unsigned int segmentIndex,
195 OdGeLineSeg3d& line3d) const;
196
203 unsigned int segmentIndex,
204 OdGeCircArc2d& arc2d) const;
205
212 unsigned int segmentIndex,
213 OdGeCircArc3d& arc3d) const;
214
227 virtual bool onSegAt(
228 unsigned int segmentIndex,
229 const OdGePoint2d& point2d,
230 double& param) const;
231
238 bool closed);
239
253 bool plinegen);
254
264 double elevation);
265
273 double thickness);
274
280 double constantWidth);
281
287 const OdGeVector3d& normal);
288
292 bool isOnlyLines() const;
293
304 bool hasPlinegen() const;
305
312 double elevation() const;
313
320 double thickness() const;
321
325 double getConstantWidth() const;
326
331
349 unsigned int vertexIndex,
350 const OdGePoint2d& point2d,
351 double bulge = 0.,
352 double startWidth = -1.,
353 double endWidth = -1.,
354 OdInt32 vertexIdentifier = 0);
355
361 unsigned int vertexIndex);
362
366 unsigned int numVerts() const;
367
368
378 unsigned int index) const;
379
386 unsigned int index) const;
387
396 unsigned int segmentIndex,
397 double& startWidth,
398 double& endWidth) const;
399
406 unsigned int vertexIndex,
407 const OdGePoint2d& point2d);
408
420 unsigned int index,
421 double bulge);
422
430 unsigned int index,
431 OdInt32 suggestedId);
432
441 unsigned int index,
442 double startWidth,
443 double endWidth);
444
452
457
470 void reset(
471 bool reuse,
472 unsigned int numVerts);
473
477 bool hasBulges() const;
478
483
487 bool hasWidth() const;
488
490 const OdGeMatrix3d& mat, OdDbEntityPtr& pCopy) const ODRX_OVERRIDE;
491
493 const OdGeMatrix3d& xfm) ODRX_OVERRIDE;
494
495 virtual bool subWorldDraw(
496 OdGiWorldDraw* pWd) const ODRX_OVERRIDE;
497
498 //FELIX_CHANGE_BEGIN
500 OdGeExtents3d& extents) const ODRX_OVERRIDE;
501 //FELIX_CHANGE_END
502
503 virtual void subViewportDraw(
505
508
509 virtual void dwgOutFields(
510 OdDbDwgFiler* pFiler) const ODRX_OVERRIDE;
511
514
517
518 virtual void dxfOutFields(
519 OdDbDxfFiler* pFiler) const ODRX_OVERRIDE;
520
522 void* pClsid) const ODRX_OVERRIDE;
523
524 virtual bool isPlanar() const ODRX_OVERRIDE;
525
527 OdGePlane& plane,
528 OdDb::Planarity& planarity) const;
529
530
531
535
536 virtual bool isClosed() const;
537
538 virtual bool isPeriodic() const;
539
541 double& startParam) const;
542
544 double& endParam) const;
545
547 OdGePoint3d& startPoint) const;
548
550 OdGePoint3d& endPoint) const;
551
553 double param,
554 OdGePoint3d& pointOnCurve) const;
555
557 const OdGePoint3d& pointOnCurve,
558 double& param) const;
559
561 double param,
562 OdGeVector3d& firstDeriv) const;
563
565 double param,
566 OdGeVector3d& secondDeriv) const;
567
569 double& area) const;
570
573
574 virtual OdResult getDistAtParam( double param, double& dist ) const;
575
576 virtual OdResult getParamAtDist( double dist, double& param ) const;
577
579 OdRxObjectPtrArray& entitySet) const;
580
582 OdRxObjectPtrArray& entitySet) const;
583
585 OdGsMarker gsMark,
586 const OdGePoint3d& pickPoint,
587 const OdGeMatrix3d& viewXform,
588 OdDbFullSubentPathArray& subentPaths,
589 const OdDbObjectIdArray* pEntAndInsertStack) const;
590
592 OdGsMarkerArray& gsMarkers) const;
593
595
597
602
603 virtual OdResult getOdGeCurve(OdGeCurve3d*& pGeCurve, const OdGeTol& tol = OdGeContext::gTol) const;
604 virtual OdResult setFromOdGeCurve(const OdGeCurve3d& geCurve, OdGeVector3d *normal = NULL, const OdGeTol& tol = OdGeContext::gTol);
605 void subSetDatabaseDefaults(OdDbDatabase* pDb, bool doSubEnts);
606};
607
612
613#include "TD_PackPop.h"
614
615#endif //OD_DBPL_H
616
OdSmartPtr< OdDbEntity > OdDbEntityPtr
Definition DbEntity.h:51
#define DBENT_EXPORT
Definition DbExport.h:67
OdSmartPtr< OdDbPolyline > OdDbPolylinePtr
Definition DbPolyline.h:611
OdArray< OdDbFullSubentPath > OdDbFullSubentPathArray
Definition DbSubentId.h:169
tol
OdArray< OdGsMarker, OdMemoryAllocator< OdGsMarker > > OdGsMarkerArray
OdArray< OdDbObjectId, OdClrMemAllocator< OdDbObjectId > > OdDbObjectIdArray
Definition IdArrays.h:53
ptrdiff_t OdGsMarker
int OdInt32
#define ODRX_OVERRIDE
OdResult
Definition OdResult.h:29
OdArray< OdRxObjectPtr > OdRxObjectPtrArray
Definition RxObject.h:1196
virtual bool isPeriodic() const
void setBulgeAt(unsigned int index, double bulge)
double elevation() const
OdInt32 getVertexIdentifierAt(unsigned int index) const
void setWidthsAt(unsigned int index, double startWidth, double endWidth)
TD_USING(OdDbCurve::getFirstDeriv)
bool isOnlyLines() const
void setPlinegen(bool plinegen)
virtual OdResult getFirstDeriv(double param, OdGeVector3d &firstDeriv) const
void setConstantWidth(double constantWidth)
DWGMAP_DECLARE_MEMBERS(OdDbPolyline)
void reset(bool reuse, unsigned int numVerts)
void getPointAt(unsigned int vertexIndex, OdGePoint3d &point3d) const
virtual bool onSegAt(unsigned int segmentIndex, const OdGePoint2d &point2d, double &param) const
virtual OdResult getOdGeCurve(OdGeCurve3d *&pGeCurve, const OdGeTol &tol=OdGeContext::gTol) const
void minimizeMemory()
OdResult convertTo(OdDb2dPolyline *pDest, bool transferId=true)
virtual OdResult subGetClassID(void *pClsid) const ODRX_OVERRIDE
virtual OdResult getEndParam(double &endParam) const
virtual OdResult subGetTransformedCopy(const OdGeMatrix3d &mat, OdDbEntityPtr &pCopy) const ODRX_OVERRIDE
virtual OdResult explodeGeometry(OdRxObjectPtrArray &entitySet) const
virtual OdResult dwgInFields(OdDbDwgFiler *pFiler) ODRX_OVERRIDE
void subSetDatabaseDefaults(OdDbDatabase *pDb, bool doSubEnts)
bool hasPlinegen() const
virtual OdResult setFromOdGeCurve(const OdGeCurve3d &geCurve, OdGeVector3d *normal=NULL, const OdGeTol &tol=OdGeContext::gTol)
virtual OdResult getParamAtDist(double dist, double &param) const
void getPointAt(unsigned int vertexIndex, OdGePoint2d &point2d) const
void setVertexIdentifierAt(unsigned int index, OdInt32 suggestedId)
virtual OdResult dxfInFields_R12(OdDbDxfFiler *pFiler) ODRX_OVERRIDE
virtual OdDbEntityPtr subSubentPtr(const OdDbFullSubentPath &path) const
void addVertexAt(unsigned int vertexIndex, const OdGePoint2d &point2d, double bulge=0., double startWidth=-1., double endWidth=-1., OdInt32 vertexIdentifier=0)
void maximizeMemory()
double getConstantWidth() const
virtual OdResult subGetSubentPathsAtGsMarker(OdDb::SubentType type, OdGsMarker gsMark, const OdGePoint3d &pickPoint, const OdGeMatrix3d &viewXform, OdDbFullSubentPathArray &subentPaths, const OdDbObjectIdArray *pEntAndInsertStack) const
virtual OdResult getStartParam(double &startParam) const
virtual void subViewportDraw(OdGiViewportDraw *pVd) const ODRX_OVERRIDE
virtual bool isPlanar() const ODRX_OVERRIDE
void getArcSegAt(unsigned int segmentIndex, OdGeCircArc3d &arc3d) const
void setNormal(const OdGeVector3d &normal)
virtual OdResult getPointAtParam(double param, OdGePoint3d &pointOnCurve) const
bool hasWidth() const
virtual bool isClosed() const
bool hasVertexIdentifiers() const
void setPointAt(unsigned int vertexIndex, const OdGePoint2d &point2d)
virtual OdResult dxfInFields(OdDbDxfFiler *pFiler) ODRX_OVERRIDE
virtual OdResult subGetGeomExtents(OdGeExtents3d &extents) const ODRX_OVERRIDE
void setElevation(double elevation)
void setClosed(bool closed)
void removeVertexAt(unsigned int vertexIndex)
virtual OdResult getParamAtPoint(const OdGePoint3d &pointOnCurve, double &param) const
virtual OdResult subExplode(OdRxObjectPtrArray &entitySet) const
bool hasBulges() const
void setThickness(double thickness)
SegType segType(unsigned int segmentIndex) const
OdResult convertFrom(OdDbEntity *pSource, bool transferId=true)
virtual OdResult getEndPoint(OdGePoint3d &endPoint) const
double thickness() const
OdGeMatrix3d getEcs() const
void getLineSegAt(unsigned int segmentIndex, OdGeLineSeg2d &line2d) const
virtual OdResult getSecondDeriv(double param, OdGeVector3d &secondDeriv) const
virtual OdResult reverseCurve()
double getBulgeAt(unsigned int index) const
void getLineSegAt(unsigned int segmentIndex, OdGeLineSeg3d &line3d) const
virtual OdResult subTransformBy(const OdGeMatrix3d &xfm) ODRX_OVERRIDE
virtual OdResult getPlane(OdGePlane &plane, OdDb::Planarity &planarity) const
void getWidthsAt(unsigned int segmentIndex, double &startWidth, double &endWidth) const
virtual OdResult getArea(double &area) const
virtual OdResult getDistAtParam(double param, double &dist) const
virtual OdResult subGetGsMarkersAtSubentPath(const OdDbFullSubentPath &subPath, OdGsMarkerArray &gsMarkers) const
OdGeVector3d normal() const
unsigned int numVerts() const
virtual void dwgOutFields(OdDbDwgFiler *pFiler) const ODRX_OVERRIDE
void getArcSegAt(unsigned int segmentIndex, OdGeCircArc2d &arc2d) const
virtual OdResult getStartPoint(OdGePoint3d &startPoint) const
virtual void dxfOutFields(OdDbDxfFiler *pFiler) const ODRX_OVERRIDE
virtual bool subWorldDraw(OdGiWorldDraw *pWd) const ODRX_OVERRIDE
GLuint index
Definition gles2_ext.h:265
GLuint GLsizei GLsizei GLint GLenum * type
Definition gles2_ext.h:274