CFx SDK Documentation  2023 SP0
AECDimPoint.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 __AECDIMENSIONCOMMONOVERRIDE_H__
25 #define __AECDIMENSIONCOMMONOVERRIDE_H__
26 
27 #include "AECArchDACHBase.h"
29 #include <DbFiler.h>
30 #include <Ge/GePoint3d.h>
31 
37 class AECARCHDACHBASE_API AECDimPoint
38 {
39  public:
44 
45  public:
49  enum Type
50  {
51  etPoint = -1,
52  etIntersection = 1,
53  etEndPoint = 2,
54  etStartPoint = 3,
55  etCenter = 4,
56  etWidthCenter = 6,
57  etQuadrant = 7
58  };
59 
63  enum Category
64  {
65  ecPoint = 1,
66  ecOverall = 2,
67  ecWallPoint = 2,
68  ecEdgePoint = 3,
69  ecWallComponentPoint = 3,
70  ecWallOpeningPoint = 4,
71  ecWallIntersectionPoint = 6,
72  ecBoundingBox = 7,
73  ecComponentCenter = 7
74  };
75 
79  enum Group
80  {
91  egAecPoint
92  };
93 
94  public:
98  void setPoint( const OdGePoint2d& ptLocation, OdInt16 iIndex = 0 );
99 
103  void setSimple( const OdGePoint2d& ptLocation,
104  const OdDbObjectId& idPrimary, const OdDbObjectId& idSecondary,
105  Type eType, Category eCategory, OdInt16 iIndex = 0, OdInt16 iTag = 0 );
106 
110  void setComplex( const OdGePoint2d& ptLocation,
111  const AECSmartReference& srefPrimary, const AECSmartReference& srefSecondary,
112  Type eType, Category eCategory, OdInt16 iIndex = 0, OdInt16 iTag = 0 );
113 
114  public:
118  const OdGePoint3d& location() const;
119 
123  void setLocation( const OdGePoint3d& ptLocation );
124 
128  Type type() const;
129 
133  void setType( Type eType );
134 
139 
143  void setCategory( Category eCategory );
144 
148  OdInt16 index() const;
149 
153  void setIndex( OdInt16 iIndex );
154 
158  OdInt16 tag() const;
159 
163  void setTag( OdInt16 iTag );
164 
168  Group group() const;
169 
173  void setGroup( Group eGroup );
174 
179 
183  void setPrimaryObject( const AECSmartReference& rReference );
184 
189 
193  void setSecondaryObject( const AECSmartReference& rReference );
194 
195  private:
196  // Location.
197  OdGePoint3d m_ptLocation;
198 
199  // Known values:
200  // o -1 - Non-Associative Point.
201  // o 1 - Intersection.
202  // o 2 - Start Point.
203  // o 3 - End Point.
204  // o 4 - Center.
205  // o 6 - Width Center.
206  // o 7 - Quadrant.
207  OdInt16 m_iPointType;
208 
209  // Known values:
210  // Walls:
211  // o 2 - Wall Points.
212  // o 3 - Wall Component Points.
213  // o 4 - Wall Opening.
214  // o 6 - Intersections.
215  //
216  // Mass Elements:
217  // Curtain Walls:
218  // Window Assemblies:
219  // Structural Member:
220  // Openings:
221  // o 2 - Overall, Edges Facing.
222  // o 3 - Edges.
223  // o 7 - Bounding Box, Center.
224  //
225  // Non-Associative Points:
226  // o 1 - Point.
227  OdInt16 m_iCategory;
228 
229  // Index for some point types:
230  // Walls:
231  // o Category 3 - Component Index.
232  // o Category 4 - Opening Index.
233  // o Category 6 - Intersection Point Index.
234  //
235  // Curtain Walls:
236  // Window Assemblies:
237  // o Category 3 - Component Index (in order: Frames, Mullions, Infills).
238  OdInt16 m_iIndex;
239 
240  // Class name that specifies overall point category.
241  // o "AecDbWall" - Walls, Wall Openings
242  // o "AecDbMassElem" - Mass Elements
243  // o "AecDbCurtainWallLayout" - Curtain Walls
244  // o "AecDbWindowAssembly" - Window Assemblies
245  // o "AecsDbMember" - Structural Members
246  // o "AecDbOpeningBase" - Doors, Windows and Openings
247  // o "AecDbLayoutGrid2d" - 2D Layout Grids
248  // o "AECDbGeo" - Slabs, Spaces, Roofs and Railings
249  // o "AecDbPoint" - Aec Point.
250  // o "OdDbCurve" - Linework
251  // o "" - Non-Associative Point.
252  //OdString m_strClassGroup;
253  Group m_eGroup;
254 
255  // Primary object.
256  AECSmartReference m_srefPrimary;
257 
258  // Secondary object.
259  AECSmartReference m_srefSecondary;
260 
261  // Additional Tag. By default - 0.
262  // Walls:
263  // o 1 - Width
264  // o 2 - Opening in Wall Width
265  //
266  // Mass Elements:
267  // Curtain Walls:
268  // Window Assemblies:
269  // Structural Member:
270  // Openings:
271  // o Edge Index (-1 for center).
272  OdInt16 m_iTag;
273 };
274 
275 #endif // __AECDIMENSIONCOMMONOVERRIDE_H__
short OdInt16
AECSmartReference primaryObject() const
Category category() const
OdInt16 index() const
Group group() const
void setIndex(OdInt16 iIndex)
void setPrimaryObject(const AECSmartReference &rReference)
void setPoint(const OdGePoint2d &ptLocation, OdInt16 iIndex=0)
void setGroup(Group eGroup)
void setType(Type eType)
void setSecondaryObject(const AECSmartReference &rReference)
void setLocation(const OdGePoint3d &ptLocation)
OdInt16 tag() const
void setCategory(Category eCategory)
AECSmartReference secondaryObject() const
Type type() const
void setSimple(const OdGePoint2d &ptLocation, const OdDbObjectId &idPrimary, const OdDbObjectId &idSecondary, Type eType, Category eCategory, OdInt16 iIndex=0, OdInt16 iTag=0)
void setTag(OdInt16 iTag)
void setComplex(const OdGePoint2d &ptLocation, const AECSmartReference &srefPrimary, const AECSmartReference &srefSecondary, Type eType, Category eCategory, OdInt16 iIndex=0, OdInt16 iTag=0)
const OdGePoint3d & location() const
@ egStructuralMember
Definition: AECDimPoint.h:85
@ egCurtainWallLayout
Definition: AECDimPoint.h:83
@ egWindowAssembly
Definition: AECDimPoint.h:84