zjf
2023-03-06 392b76515f40376b6d36f40a114850ef63650384
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
/////////////////////////////////////////////////////////////////////////////// 
// Copyright (C) 2002-2016, Open Design Alliance (the "Alliance"). 
// All rights reserved. 
// 
// This software and its documentation and related materials are owned by 
// the Alliance. The software may only be incorporated into application 
// programs owned by members of the Alliance, subject to a signed 
// Membership Agreement and Supplemental Software License Agreement with the
// Alliance. The structure and organization of this software are the valuable  
// trade secrets of the Alliance and its suppliers. The software is also 
// protected by copyright law and international treaty provisions. Application  
// programs incorporating this software must include the following statement 
// with their copyright notices:
//   
//   This application incorporates Teigha(R) software pursuant to a license 
//   agreement with Open Design Alliance.
//   Teigha(R) Copyright (C) 2002-2016 by Open Design Alliance. 
//   All rights reserved.
//
// By use of this software, its documentation or related materials, you 
// acknowledge and accept the above terms.
///////////////////////////////////////////////////////////////////////////////
 
 
 
#ifndef _INC_DDBRENTITY_3F819553013C_INCLUDED
#define _INC_DDBRENTITY_3F819553013C_INCLUDED
 
 
#include "OdaCommon.h"
#include "Br/BrExport.h"
#include "Br/BrEnums.h"
 
#include "TD_PackPush.h"
#include "SharedPtr.h"
#include "DbBaseSubentId.h"
#include "../Ge/Ge.h"
 
class OdBrBrep;
class OdBrHit;
class OdGePoint3d;
class OdGeLinearEnt3d;
 
 
/** \details
  <group OdBr_Classes>
 
  This class is the interface base class for BREP topology objects.
 
  Library: TD_Br
*/
class ODBR_TOOLKIT_EXPORT OdBrEntity
{
public:
  /** \details
    Returns true if and only if there is no ACIS model associated with this Entity object. 
  */
  bool isNull() const;
 
  /** \details
    Returns true if and only if the specified Entity object is equivalent to this Entity object.
    
    \remarks
    Two OdBrEntity objects are equivalent if and only if they non-null, and have the
    same subentity path.
    
    \param pOtherEntity [in]  Pointer to any OdBrEntity object.
  */
  bool isEqualTo(
    const OdBrEntity* pOtherEntity) const;
  
  /** \details
    Returns the owner of this Entity object.
  */
  bool getBrep(OdBrBrep& brep) const;
 
  /** \details
    Validates the element.
  */
  bool checkEntity() const;
 
  /** \details
  Returns the FullSubentPath of this Entity object.
  see OdDbBody::setSubentPath also.
  */
  OdBrErrorStatus getSubentPath(OdDbBaseFullSubentPath& subPath) const;
 
  virtual ~OdBrEntity();
 
  // for internal usage only. OdDbBody::setSubentPath should be used instead.
  OdBrErrorStatus setSubentPath(OdBrBrep &brep, OdDbBaseFullSubentPath& subpath);
 
  OdBrErrorStatus getPointContainment(const OdGePoint3d&      point,
                                      OdGe::PointContainment& containment,
                                      OdBrEntity*&            brEntContainer ) const;
 
  OdBrErrorStatus getLineContainment( const OdGeLinearEnt3d& line,
                                      const OdUInt32&        iNumHitsWanted,
                                      OdUInt32&              iNumHitsFound,
                                      OdBrHit*&              brHit ) const;
 
 
/*
  void* getEntity() const;
  OdBrErrorStatus setEntity(void* pData, OdDbBaseFullSubentPath& subPath = *(OdDbBaseFullSubentPath*)NULL);
 
  // Geometric bounds (i.e., model space bounding box)
  OdBrErrorStatus getBoundBlock(OdGeBoundBlock3d& block) const;
*/
 
  // Validation
  OdBrErrorStatus setValidationLevel(const BrValidationLevel& level = *(BrValidationLevel*)NULL);
  OdBrErrorStatus getValidationLevel(BrValidationLevel& level) const;
 
/*
  bool brepChanged() const;
 
  // Queries & Initialisers
  OdBrErrorStatus set(const BrValidationLevel& path);
  OdBrErrorStatus get(BrValidationLevel& path) const;
  OdBrErrorStatus set(OdBrBrepData* data);
  OdBrErrorStatus get(OdBrBrepData*& data) const;
 
  // Geometric properties
  OdBrErrorStatus getMassProps(OdBrMassProps& massProps,
    const double& dDensity     = *(double*)NULL,
    const double& dTolRequired = *(double*)NULL,
    double&       dTolAchieved = *(double*)NULL) const;
  OdBrErrorStatus getVolume(double& dVolume,
    const double& dTolRequired = *(double*)NULL,
    double&       dTolAchieved = *(double*)NULL) const;
  OdBrErrorStatus getSurfaceArea(double& dArea,
    const double& dTolRequired = *(double*)NULL,
    double&       dTolAchieved = *(double*)NULL) const;
  OdBrErrorStatus getPerimeterLength(double& dLength,
    const double& dTolRequired = *(double*)NULL,
    double&       dTolAchieved = *(double*)NULL) const;
*/
 
protected:
  void *m_pImp;
  OdSharedPtr<OdDbStubPtrArray> m_pFSubentPath;
  bool m_bIsValidate; //The enum has only 2 values.
 
  OdBrEntity();
 
  friend class OdBrEntityInternals;
};
 
#include "TD_PackPop.h"
 
#endif /* _INC_DDBRENTITY_3F819553013C_INCLUDED */