CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
DbPolyline.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, 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-2022 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
526 virtual OdResult getPlane(
527 OdGePlane& plane,
528 OdDb::Planarity& planarity) const;
529
530
531
536 virtual bool isClosed() const;
537
538 virtual bool isPeriodic() const;
539
540 virtual OdResult getStartParam(
541 double& startParam) const;
542
543 virtual OdResult getEndParam (
544 double& endParam) const;
545
546 virtual OdResult getStartPoint(
547 OdGePoint3d& startPoint) const;
548
549 virtual OdResult getEndPoint(
550 OdGePoint3d& endPoint) const;
551
552 virtual OdResult getPointAtParam(
553 double param,
554 OdGePoint3d& pointOnCurve) const;
555
556 virtual OdResult getParamAtPoint(
557 const OdGePoint3d& pointOnCurve,
558 double& param) const;
559
560 virtual OdResult getFirstDeriv (
561 double param,
562 OdGeVector3d& firstDeriv) const;
563
564 virtual OdResult getSecondDeriv (
565 double param,
566 OdGeVector3d& secondDeriv) const;
567
568 virtual OdResult getArea(
569 double& area) const;
570
571 TD_USING(OdDbCurve::getFirstDeriv);
572 TD_USING(OdDbCurve::getSecondDeriv);
573
574 virtual OdResult getDistAtParam( double param, double& dist ) const;
575
576 virtual OdResult getParamAtDist( double dist, double& param ) const;
577
578 virtual OdResult subExplode(
579 OdRxObjectPtrArray& entitySet) const;
580
581 virtual OdResult explodeGeometry(
582 OdRxObjectPtrArray& entitySet) const;
583
584 virtual OdResult subGetSubentPathsAtGsMarker(OdDb::SubentType type,
585 OdGsMarker gsMark,
586 const OdGePoint3d& pickPoint,
587 const OdGeMatrix3d& viewXform,
588 OdDbFullSubentPathArray& subentPaths,
589 const OdDbObjectIdArray* pEntAndInsertStack) const;
590
591 virtual OdResult subGetGsMarkersAtSubentPath( const OdDbFullSubentPath& subPath,
592 OdGsMarkerArray& gsMarkers) const;
593
594 virtual OdDbEntityPtr subSubentPtr(const OdDbFullSubentPath& path) const;
595
596 virtual OdResult reverseCurve();
597
601 OdGeMatrix3d getEcs( ) const;
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};
606
611
612#include "TD_PackPop.h"
613
614#endif //OD_DBPL_H
615
#define DBENT_EXPORT
Definition: DbExport.h:67
tol
Definition: DimVarDefs.h:2287
#define TD_USING(a)
Definition: OdPlatform.h:647
ptrdiff_t OdGsMarker
int OdInt32
#define ODRX_OVERRIDE
OdResult
Definition: OdResult.h:29
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)
bool isOnlyLines() const
void setPlinegen(bool plinegen)
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
void minimizeMemory()
OdResult convertTo(OdDb2dPolyline *pDest, bool transferId=true)
virtual OdResult subGetClassID(void *pClsid) const ODRX_OVERRIDE
virtual OdResult subGetTransformedCopy(const OdGeMatrix3d &mat, OdDbEntityPtr &pCopy) const ODRX_OVERRIDE
virtual OdResult dwgInFields(OdDbDwgFiler *pFiler) ODRX_OVERRIDE
bool hasPlinegen() const
void getPointAt(unsigned int vertexIndex, OdGePoint2d &point2d) const
void setVertexIdentifierAt(unsigned int index, OdInt32 suggestedId)
virtual OdResult dxfInFields_R12(OdDbDxfFiler *pFiler) ODRX_OVERRIDE
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 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)
bool hasWidth() 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)
bool hasBulges() const
void setThickness(double thickness)
SegType segType(unsigned int segmentIndex) const
OdResult convertFrom(OdDbEntity *pSource, bool transferId=true)
double thickness() const
void getLineSegAt(unsigned int segmentIndex, OdGeLineSeg2d &line2d) const
double getBulgeAt(unsigned int index) const
void getLineSegAt(unsigned int segmentIndex, OdGeLineSeg3d &line3d) const
virtual OdResult subTransformBy(const OdGeMatrix3d &xfm) ODRX_OVERRIDE
void getWidthsAt(unsigned int segmentIndex, double &startWidth, double &endWidth) 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 void dxfOutFields(OdDbDxfFiler *pFiler) const ODRX_OVERRIDE
virtual bool subWorldDraw(OdGiWorldDraw *pWd) const ODRX_OVERRIDE
Definition: GeTol.h:49
GLuint index
Definition: gles2_ext.h:265
GLuint GLsizei GLsizei GLint GLenum * type
Definition: gles2_ext.h:274