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
/////////////////////////////////////////////////////////////////////////////// 
// 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 _DbBlockElement_h_Included_
#define _DbBlockElement_h_Included_
 
#include "DbEvalGraph.h"
#include "IntArray.h"
#include "Ge/GePoint3dArray.h"
 
class OdDbBlockTableRecord;
class OdDbBlockRepresentationContext;
 
#define ODDB_EVAL_DECLARE_MEMBERS(ClassName) \
  ODDB_DECLARE_MEMBERS(ClassName);\
  OdResult dwgInFields(OdDbDwgFiler* pFiler);\
  void dwgOutFields(OdDbDwgFiler* pFiler) const;\
  OdResult dxfInFields(OdDbDxfFiler* pFiler);\
  void dxfOutFields(OdDbDxfFiler* pFiler) const
 
// #define DEBUG_EVALGRAPH 1
 
/** \details
 
    \sa
    TD_Db
 
    <group OdDb_Classes> 
*/
class DYNBLOCKS_EXPORT OdDbBlockElement : public OdDbEvalConnectable
{
public:
  enum HistoryCompression{kHistoryCompression0,kHistoryCompression1,kHistoryCompression2,kHistoryCompression3};
  ODDB_EVAL_DECLARE_MEMBERS(OdDbBlockElement);
  //!DOM EvalExpr interface
  //!DOM virtual void adjacentNodeRemoved( const OdDbEvalNodeId& );
  virtual bool evaluate( const OdDbEvalContext* );
  //!DOM OdDbEvalConnectable interface
  virtual bool connectionAllowed(const OdString&,OdDbEvalNodeId,const OdString&) const;
  virtual bool connectTo(const OdString&,OdDbEvalNodeId,const OdString&);
  virtual bool disconnectFrom(const OdString&,OdDbEvalNodeId,const OdString&);
  virtual bool hasConnectionNamed(const OdString&) const;
  virtual bool getConnectedNames(const OdString&,unsigned long,OdStringArray&) const;
  virtual bool getConnectedObjects(const OdString&,OdDbEvalNodeIdArray&) const;
  virtual void getConnectionNames(OdStringArray&) const;
  virtual bool getConnectionType  (const OdString& name, OdResBuf::ValueType& type) const;
  virtual OdResBufPtr getConnectionValue (const OdString& name) const;
  //!DOM  
  virtual OdString name() const;
  virtual void setName( const OdString& );
  //!DOM virtual unsigned long alertState() const;
  //!DOM virtual void auditAlertState();
  //!DOM OdDbObjectId getEntity();
  //!DOM class AcRxClass * getRxEntity(void)
  virtual OdDb::MaintReleaseVer getInstanceMaintenanceVersion();
  virtual OdDb::DwgVersion  getInstanceVersion();
  virtual void getStretchPoints( OdGePoint3dArray& )const;
  virtual void moveStretchPointsAt( const OdIntArray &, const OdGeVector3d &);
  virtual HistoryCompression historyCompression() const;
  virtual bool historyRequired() const;
  //!DOM static bool isNameUnique(class OdDbEvalGraph* graph, const OdString& name, OdString* result );
  virtual bool hasInstanceData()const; // has instance data loaded
  virtual bool loadInstanceData(const OdResBuf*); // loads instance data from xdata chain
  virtual OdResBufPtr saveInstanceData()const; // saves instance data to xdata chain
  virtual void updateConnections();
  //!DOM virtual bool onBeginEdit( OdDbBlockTableRecord* );
  //!DOM virtual bool onEndEdit(OdDbBlockTableRecord*);
    /*!DOM 
  void OnBeginEditCancelled(class AcDbObjectId,class AcDbObjectId)
  void OnBeginEditEnded(class AcDbObjectId,class AcDbObjectId)
  void OnBeginSaveCancelled(class AcDbObjectId,class AcDbObjectId)
  void OnBeginSaveEnded(class AcDbObjectId,class AcDbObjectId)
  void OnBeginSaveStarted(class AcDbObjectId,class AcDbObjectId)
  void OnEndEditCancelled(class AcDbObjectId,class AcDbObjectId)
  void OnEndEditStarted(class AcDbObjectId,class AcDbObjectId)
  */
  virtual bool isMemberOfCurrentVisibilitySet()const;
  virtual void setMemberOfCurrentVisibilitySet(bool);
  //!DOM   enum Acad::ErrorStatus  AcDbBlockElement::sync(class AcDbBlockElementEntity *)
  //!DOM  virtual void transformDefinitionBy( const OdGeMatrix3d &);
  virtual OdResult transformBy( const OdGeMatrix3d& );
};
typedef OdSmartPtr<OdDbBlockElement>OdDbBlockElementPtr;
 
#endif // _DbBlockElement_h_Included_