CFx SDK Documentation  2023 SP0
AECRailingLowerProfile.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 __AECRAILINGLOWERPROFILE_H__
25 #define __AECRAILINGLOWERPROFILE_H__
26 
29 
35 class AECARCHBASE_API AECRailingLowerProfile : public AECImpObj
36 {
38 
39  public:
43  enum Slope
44  {
49  eSlopeNone = 0,
50 
55  eSlopeMiddle = 4,
56 
61  eSlopeStart = 5,
62 
67  eSlopeEnd = 6,
68 
73  eSlopeObject = 28
74  };
75 
83  static const double PreviousElevation;
84 
85  public:
91 
96  void SetNodeCount( OdUInt32 iCount );
97 
105  double GetNodeOffset( OdUInt32 iIndex ) const;
106 
114  void SetNodeOffset( OdUInt32 iIndex, double dOffset );
115 
126  double GetNodeElevation( OdUInt32 iIndex, bool bBaluster = false ) const;
127 
134  void SetNodeElevation( OdUInt32 iIndex, double dElevation );
135 
142  Slope GetNodeSlopeInfo( OdUInt32 iIndex ) const;
143 
150  void SetNodeSlopeInfo( OdUInt32 iIndex, Slope eSlope );
151 
155  double GetBaseElevation() const;
156 
160  void SetBaseElevation( double dElevation );
161 
166 
171 
178  void GetElevations( FacetModeler::Contour2D& rElevations, bool bBaluster = false ) const;
179 
180  protected:
181  // 2D baseline.
183 
184  // Linear offsets from beginning of
185  // polyline.
186  std::vector<double> m_aOffsets;
187 
188  // Elevations, corresponding to the
189  // appropriate offsets.
190  std::vector<double> m_aElevations;
191 
192  // Value, which indicates that the elevation
193  // is the same as the previous.
195 
196  // Base value for elevation.
198 
199  // This array contains flags, corresponding to the
200  // appropriate offsets. These flags describe the behaviour
201  // of railing.
202  std::vector<Slope> m_aSlopeFlags;
203 
205 };
206 
209 
210 #endif //__AECRAILINGLOWERPROFILE_H__
#define AEC_DECLARE_MEMBERS(ClassName)
Definition: AECMacros.h:54
OdSmartPtr< AECRailingLowerProfile > AECRailingLowerProfilePtr
AECSubPtr< AECRailingLowerProfile > AECRailingLowerProfileSubPtr
unsigned int OdUInt32
std::vector< Slope > m_aSlopeFlags
AECGePolyline2dSubPtr GetPolyline() const
void SetNodeSlopeInfo(OdUInt32 iIndex, Slope eSlope)
double GetNodeOffset(OdUInt32 iIndex) const
void GetElevations(FacetModeler::Contour2D &rElevations, bool bBaluster=false) const
void SetNodeCount(OdUInt32 iCount)
void SetBaseElevation(double dElevation)
double GetBaseElevation() const
std::vector< double > m_aElevations
AECRailingHeightInfo m_cHeightInfo
void SetNodeOffset(OdUInt32 iIndex, double dOffset)
std::vector< double > m_aOffsets
Slope GetNodeSlopeInfo(OdUInt32 iIndex) const
OdUInt32 GetNodeCount() const
void SetNodeElevation(OdUInt32 iIndex, double dElevation)
static const double PreviousElevation
double GetNodeElevation(OdUInt32 iIndex, bool bBaluster=false) const
AECGePolyline2dPtr m_pRailingContour
AECRailingHeightInfoSubPtr GetHeightInfo() const