CFx SDK Documentation
2024 SP0
Loading...
Searching...
No Matches
SDK
CFx
aec_inc
Common
AECMacros.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
16
// license 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
#ifndef __AECMACROS_H__
25
#define __AECMACROS_H__
26
27
#include <
DbEntity.h
>
28
#include <
RxModule.h
>
29
30
class
AECDbDwgFiler;
31
32
// Methods from OdDbCurve interface currently supported by ODA Architecture entities.
33
// TODO: Add all other methods from OdDbCurve interface.
34
#define CURVE_DECLARE_MEMBERS() \
35
public: \
36
virtual bool isClosed() const; \
37
virtual bool isPeriodic() const; \
38
virtual OdResult getStartParam( double& param ) const; \
39
virtual OdResult getEndParam ( double& param ) const; \
40
virtual OdResult getStartPoint( OdGePoint3d& pt ) const; \
41
virtual OdResult getEndPoint( OdGePoint3d& pt ) const; \
42
virtual OdResult getPointAtParam( double, OdGePoint3d& ) const; \
43
virtual OdResult getParamAtPoint( const OdGePoint3d&, double& ) const; \
44
virtual OdResult getDistAtParam ( double param, double& dist ) const; \
45
virtual OdResult getParamAtDist ( double dist, double& param ) const; \
46
virtual OdResult getDistAtPoint ( const OdGePoint3d&, double& )const; \
47
virtual OdResult getPointAtDist ( double, OdGePoint3d&) const; \
48
virtual OdResult getFirstDeriv ( double param, OdGeVector3d& firstDeriv ) const; \
49
virtual OdResult getPlane(OdGePlane& plane, OdDb::Planarity& planarity) const; \
50
virtual OdResult getClosestPointTo( const OdGePoint3d& givenPoint, OdGePoint3d& pointOnCurve, bool extend = false ) const
51
52
// Declares standard methods for each
53
// ODA Architecture database resident or imp-object.
54
#define AEC_DECLARE_MEMBERS( ClassName ) \
55
\
56
ODRX_DECLARE_MEMBERS( ClassName ); \
57
\
58
private: \
59
OdRxModulePtr m_pModule; \
60
public: \
61
static const OdUInt16 m_AECType; \
62
static const OdUInt16 m_ver; \
63
public: \
64
ClassName(); \
65
virtual ~ClassName(); \
66
public: \
67
virtual OdUInt16 GetAECType() const; \
68
void referenceModule(); \
69
\
70
virtual OdResult dwgInFieldsEx( AECDbDwgFiler* pFiler ); \
71
virtual void dwgOutFieldsEx( AECDbDwgFiler* pFiler ) const; \
72
\
73
virtual OdResult dxfInFields( OdDbDxfFiler* pFiler ); \
74
virtual void dxfOutFields( OdDbDxfFiler* pFiler ) const
75
76
// Declares empty ODA Architecture subobject or database resident.
77
#define DECLARE_EMPTY( API, AECClass, AECParentClass ) \
78
class API AECClass : public AECParentClass \
79
{ \
80
AEC_DECLARE_MEMBERS( AECClass ); \
81
}; \
82
typedef OdSmartPtr<AECClass> AECClass##Ptr
83
84
// Following macros is used to define
85
// standard static methods for AEC dictionaries.
86
#define AEC_DICTIONARY_BASE( ClassName ) \
87
public: \
88
static OdDbObjectId GetAECDictionary( OdDbDatabase* pDatabase, bool bCreateIfNotFound = false ); \
89
static OdDbObjectId GetAECDictionaryExt( OdDbObject* pObject, bool bCreateIfNotFound = false )
90
91
#define AEC_DICTIONARY_DECLARE_MEMBERS( ClassName ) \
92
AEC_DICTIONARY_BASE( ClassName ); \
93
static OdDbObjectId GetStandardAECObject( OdDbDatabase* pDatabase ); \
94
static OdDbObjectId GetAECObject( OdDbDatabase* pDatabase, const OdString& strName = OdString::kEmpty ); \
95
static OdDbObjectId GetAECObjectExt( OdDbObject* pObject, const OdString& strName ); \
96
static OdDbObjectId CreateAECObject( OdDbDatabase* pDatabase, const OdString& strName = OdString::kEmpty ); \
97
static OdDbObjectId CreateAECObjectExt( OdDbObject* pObject, const OdString& strName = OdString::kEmpty )
98
99
// Declares simple sub-object.
100
#define AEC_SUBOBJ_DECLARE_MEMBERS_NO_DESTR( ClassName ) \
101
ODRX_DECLARE_MEMBERS( ClassName ); \
102
public: \
103
ClassName(); \
104
virtual OdResult dwgInFieldsEx( AECDbDwgFiler* pFiler ); \
105
virtual void dwgOutFieldsEx( AECDbDwgFiler* pFiler ) const;
106
107
#define AEC_SUBOBJ_DECLARE_MEMBERS( ClassName ) \
108
AEC_SUBOBJ_DECLARE_MEMBERS_NO_DESTR( ClassName ) \
109
virtual ~ClassName() { }
110
111
#endif
//__AECMACROS_H__
DbEntity.h
RxModule.h
Generated on Wed Apr 5 2023 17:27:55