FRX SDK Documentation 2025 SP0
Loading...
Searching...
No Matches
AcDbSurface.h
Go to the documentation of this file.
1#pragma once
2
3//
4// (C) Copyright 2005-2024 by Graebert GmbH.
5//
6// Permission to use, copy, modify, and distribute this software in
7// object code form for any purpose and without fee is hereby granted,
8// provided that the above copyright notice appears in all copies and
9// that both that copyright notice and the limited warranty and
10// restricted rights notice below appear in all supporting
11// documentation.
12//
13// GRAEBERT PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
14// GRAEBERT SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
15// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. GRAEBERT GMBH
16// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
17// UNINTERRUPTED OR ERROR FREE.
18
20#include "..\acad\Acad.h"
21
22template < typename Param1 > class AcArrayMemCopyReallocator;
23class AcDb3dSolid;
24class AcDbDwgFiler;
25class AcDbDxfFiler;
26class AcDbEntity;
27class AcDbSubentId;
29class AcRxClass;
30class AcDbLoftProfile;
31class AcDbPathRef;
32class AcDb3dProfile;
36class AcDbNurbSurface;
38
40
42{
43public:
45 {
46 kIsolines = 0,
47 kIsoparms = 1
48 };
50 {
51 kExtendEdge = 0x000,
52 kStretchEdge = 0x001,
53 };
54
60
62 virtual Acad::ErrorStatus getArea(double &)const ;
63 virtual Acad::ErrorStatus getClassID( _GUID *)const ;
64 virtual Acad::ErrorStatus setBody(void const *);
65 virtual Acad::ErrorStatus setUIsolineDensity(unsigned short);
66 virtual Acad::ErrorStatus setVIsolineDensity(unsigned short);
67 virtual Acad::ErrorStatus thicken(double,bool, AcDb3dSolid * &)const ;
68 virtual unsigned short uIsolineDensity(void)const ;
69 virtual unsigned short vIsolineDensity(void)const ;
70 virtual void * body(void)const ;
71 virtual void * internalSubentPtr( AcDbSubentId const &)const ;
72
73 virtual Acad::ErrorStatus booleanUnion( const AcDbSurface*, AcDbSurface*&);
74 virtual Acad::ErrorStatus booleanSubtract(const AcDb3dSolid*, AcDbSurface*&);
75 virtual Acad::ErrorStatus booleanSubtract( const AcDbSurface*, AcDbSurface*&);
76 virtual Acad::ErrorStatus booleanIntersect( const AcDbSurface*, AcArray<AcDbEntity*>&);
77 virtual Acad::ErrorStatus booleanIntersect(const AcDb3dSolid*, AcArray<AcDbEntity*>&);
78 virtual Acad::ErrorStatus imprintEntity(const AcDbEntity*);
79 virtual Acad::ErrorStatus createSectionObjects(const AcGePlane&, AcArray<AcDbEntity*>&) const;
80 virtual Acad::ErrorStatus sliceByPlane(const AcGePlane& , AcDbSurface*& , AcDbSurface*& );
81 virtual Acad::ErrorStatus sliceBySurface(const AcDbSurface* , AcDbSurface*& , AcDbSurface*& );
82 virtual Acad::ErrorStatus chamferEdges(const AcArray<AcDbSubentId *> &, const AcDbSubentId& , double , double );
84 virtual Acad::ErrorStatus createInterferenceObjects(AcArray<AcDbEntity*>&, AcDbEntity*, unsigned int) const;
85 Acad::ErrorStatus chamferEdges(const AcArray<AcDbSubentId *> &, const AcDbSubentId& , double , double , bool );
86 Acad::ErrorStatus filletEdges(const AcArray<AcDbSubentId *> &,double , bool );
87 Acad::ErrorStatus projectOnToSurface(const AcDbEntity* , const AcGeVector3d& , AcArray<AcDbEntity*>& ) const;
88 virtual Acad::ErrorStatus setSubentColor(const AcDbSubentId& ,const AcCmColor&);
89 virtual Acad::ErrorStatus getSubentColor(const AcDbSubentId& ,AcCmColor& ) const;
90 virtual Acad::ErrorStatus setSubentMaterial(const AcDbSubentId& ,const AcDbObjectId& );
91 virtual Acad::ErrorStatus getSubentMaterial(const AcDbSubentId& ,AcDbObjectId& ) const;
92 virtual Acad::ErrorStatus setSubentMaterialMapper(const AcDbSubentId& ,const AcGiMapper& );
93 virtual Acad::ErrorStatus getSubentMaterialMapper(const AcDbSubentId& , AcGiMapper&) const;
94
95 virtual void* ASMBodyCopy(bool = false) const;
96 virtual void const * getLockedASMBody();
97 virtual void unlockASMBody();
98 virtual void* getLockedWritableASMBody();
99 virtual void commitWritableASMBody();
100 virtual Acad::ErrorStatus setASMBody(const void*);
101
104 static Acad::ErrorStatus createExtrudedSurface(AcDb3dProfile *, const AcGeVector3d&, AcDbSweepOptions&, bool, AcDbObjectId&);
106 static Acad::ErrorStatus createPatchSurface(const AcDbPathRef&, const AcDbObjectIdArray&, int, double, AcDbSurface*&);
107 static Acad::ErrorStatus createPatchSurface(const AcDbPathRef&, const AcDbObjectIdArray&, int, double, bool, AcDbObjectId&);
108 static Acad::ErrorStatus createRevolvedSurface(AcDb3dProfile *, AcDb3dProfile *, bool, double, double, AcDbRevolveOptions&, AcDbRevolvedSurface*&);
109 static Acad::ErrorStatus createRevolvedSurface(AcDb3dProfile *, AcDb3dProfile *, bool, double, double, AcDbRevolveOptions&, bool, AcDbObjectId&);
110 static Acad::ErrorStatus createRevolvedSurface(AcDb3dProfile *, const AcGePoint3d&, const AcGeVector3d&, double, double, AcDbRevolveOptions&, AcDbRevolvedSurface*&);
111 static Acad::ErrorStatus createRevolvedSurface(AcDb3dProfile *, const AcGePoint3d&, const AcGeVector3d&, double, double, AcDbRevolveOptions&, bool, AcDbObjectId&);
113 static Acad::ErrorStatus createNetworkSurface(const AcArray<AcDb3dProfile*>&, const AcArray<AcDb3dProfile*>&, bool,AcDbObjectId&);
118 static Acad::ErrorStatus createFilletSurface(const AcDbObjectId& ,const AcGePoint3d& ,const AcDbObjectId& ,const AcGePoint3d& ,double ,AcDb::FilletTrimMode ,const AcGeVector3d& ,AcDbSurface*& );
119 static Acad::ErrorStatus createFilletSurface(const AcDbObjectId& ,const AcGePoint3d& ,const AcDbObjectId& ,const AcGePoint3d& ,double ,AcDb::FilletTrimMode ,const AcGeVector3d& ,bool,AcDbObjectId& );
120 static Acad::ErrorStatus createOffsetSurface(AcDbEntity* ,double ,AcDbEntity*& );
121 static Acad::ErrorStatus createOffsetSurface(AcDbEntity* ,double ,bool ,AcDbObjectId& );
122 static Acad::ErrorStatus createExtendSurface(AcDbObjectId, const AcArray<AcDbSubentId>& , double , EdgeExtensionType , bool ,AcDbObjectId& );
123 static Acad::ErrorStatus trimSurface(const AcDbObjectId &, const AcDbObjectIdArray &, const AcDbObjectIdArray &, const AcArray<AcGeVector3d>, const AcGePoint3d&, const AcGeVector3d&, bool, bool);
124
125 Acad::ErrorStatus getPerimeter( double& ) const;
126 WireframeType getWireframeType() const;
127 Acad::ErrorStatus setWireframeType(WireframeType );
128 AcDbObjectId creationActionBodyId() const;
129 Acad::ErrorStatus modificationActionBodyIds(AcDbObjectIdArray& ) const;
131 Acad::ErrorStatus rayTest(const AcGePoint3d& , const AcGeVector3d& ,double , AcArray<AcDbSubentId>& , AcGeDoubleArray& ) const;
132 Acad::ErrorStatus convertToNurbSurface(AcDbNurbSurfaceArray& );
133
135 virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const;
137 virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const;
138 virtual Acad::ErrorStatus subGetClassID(CLSID*) const override;
140 virtual Acad::ErrorStatus subTransformBy(AcGeMatrix3d const &);
141
142 virtual bool usesGraphicsCache();
143};
AcArray< AcDbNurbSurface * > AcDbNurbSurfaceArray
Definition AcDbSurface.h:39
ARX_API class AcDbSubentId internalSubentId(class AcDb3dSolid *, class ENTITY *)
Acad::ErrorStatus ErrorStatus
Definition acdbabb.h:21
#define ACRX_DECLARE_MEMBERS(classname)
Definition addmacro.h:756
AcDbSurface(void)