summaryrefslogtreecommitdiff
path: root/inc/StepData_StepDumper.hxx
blob: 0a25c718587264cbe0d28757376fe8f2f080a5a2 (plain)
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
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _StepData_StepDumper_HeaderFile
#define _StepData_StepDumper_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _Handle_StepData_StepModel_HeaderFile
#include <Handle_StepData_StepModel.hxx>
#endif
#ifndef _Interface_GeneralLib_HeaderFile
#include <Interface_GeneralLib.hxx>
#endif
#ifndef _StepData_WriterLib_HeaderFile
#include <StepData_WriterLib.hxx>
#endif
#ifndef _StepData_StepWriter_HeaderFile
#include <StepData_StepWriter.hxx>
#endif
#ifndef _Handle_StepData_Protocol_HeaderFile
#include <Handle_StepData_Protocol.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_Message_Messenger_HeaderFile
#include <Handle_Message_Messenger.hxx>
#endif
#ifndef _Handle_Standard_Transient_HeaderFile
#include <Handle_Standard_Transient.hxx>
#endif
class StepData_StepModel;
class Interface_InterfaceMismatch;
class StepData_Protocol;
class StepData_StepWriter;
class Message_Messenger;
class Standard_Transient;


//! Provides a way to dump entities processed through STEP, with <br>
//!           these features : <br>
//!           - same form as for writing a STEP File (because it is clear <br>
//!             and compact enough, even if the names of the fields do not <br>
//!             appear) : thus, no additionnal resource is required <br>
//!           - possibility to look for an entity itself (only its Type or <br>
//!             with its content), an entity and it shared items (one level) <br>
//!             or all the entities its refers to, directly or recursively. <br>
class StepData_StepDumper  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  //! Creates a StepDumper, able to work on a given StepModel <br>
//!           (which defines the total scope for dumping entities) and <br>
//!           a given Protocol from Step (which defines the authorized <br>
//!           types to be dumped) <br>
//!           <mode> commands what is to be displayed (number or label) <br>
//!           0 for number (and corresponding labels  are displayed apart) <br>
//!           1 for label  (and corresponding numbers are displayed apart) <br>
//!           2 for label without anymore <br>
  Standard_EXPORT   StepData_StepDumper(const Handle(StepData_StepModel)& amodel,const Handle(StepData_Protocol)& protocol,const Standard_Integer mode = 0);
  //! Gives an access to the tool which is used to work : this allow <br>
//!           to acts on some parameters : Floating Format, Scopes ... <br>
  Standard_EXPORT     StepData_StepWriter& StepWriter() ;
  //! Dumps a Entity on an Messenger. Returns True if <br>
//!           sucess, False, if the entity to dump has not been recognized <br>
//!           by the Protocol. <level> can have one of these values : <br>
//!           - 0 : prints the TYPE only, as known in STEP Files (StepType) <br>
//!             If <ent> has not been regognized by the Protocol, or if its <br>
//!             type is Complex, the StepType is replaced by the display of <br>
//!             the cdl type. Complex Type are well processed by level 1. <br>
//!           - 1 : dumps the entity, completely (whatever it has simple or <br>
//!             complex type) but alone. <br>
//!           - 2 : dumps the entity completely, plus the item its refers to <br>
//!                 at first level (a header message designates the starting <br>
//!                 entity of the dump) <Lists Shared and Implied> <br>
//!           - 3 : dumps the entity and its refered items at any levels <br>
//! <br>
//!           For levels 1,2,3, the numbers displayed (form #nnn) are the <br>
//!           numbers of the corresponding entities in the Model <br>
  Standard_EXPORT     Standard_Boolean Dump(const Handle(Message_Messenger)& S,const Handle(Standard_Transient)& ent,const Standard_Integer level) ;
  //! Works as Dump with a Transient, but directly takes the <br>
//!           entity designated by its number in the Model <br>
//!           Returns False, also if <num> is out of range <br>
  Standard_EXPORT     Standard_Boolean Dump(const Handle(Message_Messenger)& S,const Standard_Integer num,const Standard_Integer level) ;





protected:





private:



Handle_StepData_StepModel themodel;
Interface_GeneralLib theslib;
StepData_WriterLib thewlib;
StepData_StepWriter thewriter;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif