CFx SDK Documentation  2023 SP0
AECGeProfile.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 #ifndef __AECGEPROFILE_H__
25 #define __AECGEPROFILE_H__
26 
27 #include "Subobjects/AECImpArray.h"
30 #include "FMProfile2D.h"
31 #include <Ge/GeSegmentChain2d.h>
32 
33 class AECGeProfile;
36 
46 class AECBASE_API AECGeProfile : public AECImpObj
47 {
49 
50  public:
55 
66 
71 
75  void GetExtents( OdGeExtents2d& cExtents ) const;
76 
80  double GetArea() const;
81 
86 
87  public:
92  const OdRxClass* pSegmentType = 0,
93  const OdRxClass* pLoopType = 0 );
94 
98  static AECGeProfilePtr Create( const OdGeSegmentChain2d& rPolyline, const OdRxClass* pSegmentType = 0 );
99 
103  static AECGeProfilePtr Create(const FacetModeler::Profile2D& rProfile, const OdRxClass* pSegmentType = 0);
104 
108  void Init( const OdGeSegmentChain2d& rPolyline, const OdRxClass* pSegmentType = 0 );
109 
113  void Init(const FacetModeler::Profile2D& rProfile,
114  const OdRxClass* pSegmentType = 0);
115 
119  void InitFrom(const FacetModeler::Profile2D& rProfile, const AECGeProfile* pSource,
120  const OdRxClass* pSegmentType = 0 );
121 
125  void SetDefaultSegmentType( const OdRxClass* pSegmentType );
126 
130  void SetDefaultRingType( const OdRxClass* pRingType );
131 
135  void GetRawProfile(FacetModeler::Profile2D& rProfile) const;
136 
141 
145  void SetAttribute( AECAttribute* pAttr );
146 
150  inline bool IsCacheInvalid() const {
151  return GETBIT( m_nFlags, 1 );
152  }
153 
157  inline void SetCacheInvalid( bool bInvalid ) {
158  SETBIT( m_nFlags, 1, bInvalid );
159  }
160 
164  void Translate( const OdGeVector2d& v );
165  protected:
166  // Array of rings classes instance AECGeRing .
167  // Each ring represents some closed curve. For example of type AECGeRing.
169 
170  // Flags.
172 
173  //
175 
176  //
178 
179  //
181 };
182 
183 #endif //__AECGEPROFILE_H__
OdSmartPtr< AECGeProfile > AECGeProfilePtr
Definition: AECGeProfile.h:33
AECSubPtr< AECGeProfile > AECGeProfileSubPtr
Definition: AECGeProfile.h:35
#define AEC_DECLARE_MEMBERS(ClassName)
Definition: AECMacros.h:54
unsigned int OdUInt32
unsigned short OdUInt16
#define SETBIT(flags, bit, value)
Definition: OdaDefs.h:499
#define GETBIT(flags, bit)
Definition: OdaDefs.h:500
AECGeRingSubPtr GetRingByIndex(OdUInt32 iIndex) const
static AECGeProfilePtr CreateStandard(const OdRxClass *pSegmentType=0, const OdRxClass *pLoopType=0)
void SetAttribute(AECAttribute *pAttr)
bool IsCacheInvalid() const
Definition: AECGeProfile.h:150
double GetArea() const
void Init(const OdGeSegmentChain2d &rPolyline, const OdRxClass *pSegmentType=0)
void GetExtents(OdGeExtents2d &cExtents) const
void GetRawProfile(FacetModeler::Profile2D &rProfile) const
void SetDefaultRingType(const OdRxClass *pRingType)
const OdRxClass * m_pDefaultSegmentType
Definition: AECGeProfile.h:177
void SetDefaultSegmentType(const OdRxClass *pSegmentType)
void Init(const FacetModeler::Profile2D &rProfile, const OdRxClass *pSegmentType=0)
AECImpArraySubPtr GetRings()
const OdRxClass * m_pDefaultRingType
Definition: AECGeProfile.h:180
AECAttributePtr m_pAttribute
Definition: AECGeProfile.h:174
static AECGeProfilePtr Create(const FacetModeler::Profile2D &rProfile, const OdRxClass *pSegmentType=0)
OdUInt16 m_nFlags
Definition: AECGeProfile.h:171
OdUInt32 GetRingCount() const
OdGePoint2d GetCenterOfMass() const
void SetCacheInvalid(bool bInvalid)
Definition: AECGeProfile.h:157
AECImpArray m_aRings
Definition: AECGeProfile.h:168
void InitFrom(const FacetModeler::Profile2D &rProfile, const AECGeProfile *pSource, const OdRxClass *pSegmentType=0)
AECAttributeSubPtr GetAttribute() const
void Translate(const OdGeVector2d &v)
static AECGeProfilePtr Create(const OdGeSegmentChain2d &rPolyline, const OdRxClass *pSegmentType=0)
const GLfloat * v
Definition: gles2_ext.h:315