summaryrefslogtreecommitdiff
path: root/inc/VrmlAPI_Writer.hxx
blob: 3d666fad85c726f14505fc0694861bc459100567 (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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
// 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 _VrmlAPI_Writer_HeaderFile
#define _VrmlAPI_Writer_HeaderFile

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

#ifndef _VrmlAPI_RepresentationOfShape_HeaderFile
#include <VrmlAPI_RepresentationOfShape.hxx>
#endif
#ifndef _Handle_VrmlConverter_Drawer_HeaderFile
#include <Handle_VrmlConverter_Drawer.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Handle_VrmlConverter_Projector_HeaderFile
#include <Handle_VrmlConverter_Projector.hxx>
#endif
#ifndef _Handle_Vrml_Material_HeaderFile
#include <Handle_Vrml_Material.hxx>
#endif
#ifndef _Quantity_Length_HeaderFile
#include <Quantity_Length.hxx>
#endif
#ifndef _Handle_Quantity_HArray1OfColor_HeaderFile
#include <Handle_Quantity_HArray1OfColor.hxx>
#endif
#ifndef _Standard_CString_HeaderFile
#include <Standard_CString.hxx>
#endif
class VrmlConverter_Drawer;
class VrmlConverter_Projector;
class Vrml_Material;
class Quantity_HArray1OfColor;
class TopoDS_Shape;


//! Creates and writes VRML files from Open <br>
//! CASCADE shapes. A VRML file can be written to <br>
//! an existing VRML file or to a new one. <br>
class VrmlAPI_Writer  {
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 writer object with default parameters. <br>
  Standard_EXPORT   VrmlAPI_Writer();
  //! Resets all parameters (representation, deflection) <br>
//! to their default values.. <br>
  Standard_EXPORT     void ResetToDefaults() ;
  //! Returns drawer object <br>
  Standard_EXPORT     Handle_VrmlConverter_Drawer Drawer() const;
  //! Sets the deflection aDef of <br>
//! the mesh algorithm which is used to compute the shaded <br>
//! representation of the translated shape. The default <br>
//! value is -1. When the deflection value is less than <br>
//! 0, the deflection is calculated from the relative <br>
//! size of the shaped. <br>
  Standard_EXPORT     void SetDeflection(const Standard_Real aDef) ;
  //! Sets the representation of the <br>
//! shape aRep which is written to the VRML file. The three options are : <br>
//! -      shaded <br>
//! -      wireframe <br>
//! -      both shaded and wireframe (default) <br>
//! defined through the VrmlAPI_RepresentationOfShape enumeration. <br>
  Standard_EXPORT     void SetRepresentation(const VrmlAPI_RepresentationOfShape aRep) ;
  //! Set transparency to given material <br>
  Standard_EXPORT     void SetTransparencyToMaterial(Handle(Vrml_Material)& aMaterial,const Standard_Real aTransparency) ;
  
  Standard_EXPORT     void SetShininessToMaterial(Handle(Vrml_Material)& aMaterial,const Standard_Real aShininess) ;
  
  Standard_EXPORT     void SetAmbientColorToMaterial(Handle(Vrml_Material)& aMaterial,const Handle(Quantity_HArray1OfColor)& Color) ;
  
  Standard_EXPORT     void SetDiffuseColorToMaterial(Handle(Vrml_Material)& aMaterial,const Handle(Quantity_HArray1OfColor)& Color) ;
  
  Standard_EXPORT     void SetSpecularColorToMaterial(Handle(Vrml_Material)& aMaterial,const Handle(Quantity_HArray1OfColor)& Color) ;
  
  Standard_EXPORT     void SetEmissiveColorToMaterial(Handle(Vrml_Material)& aMaterial,const Handle(Quantity_HArray1OfColor)& Color) ;
  //! Returns the representation of the shape which is <br>
//! written to the VRML file. Types of representation are set through the <br>
//! VrmlAPI_RepresentationOfShape enumeration. <br>
  Standard_EXPORT     VrmlAPI_RepresentationOfShape GetRepresentation() const;
  
  Standard_EXPORT     Handle_Vrml_Material GetFrontMaterial() const;
  
  Standard_EXPORT     Handle_Vrml_Material GetPointsMaterial() const;
  
  Standard_EXPORT     Handle_Vrml_Material GetUisoMaterial() const;
  
  Standard_EXPORT     Handle_Vrml_Material GetVisoMaterial() const;
  
  Standard_EXPORT     Handle_Vrml_Material GetLineMaterial() const;
  
  Standard_EXPORT     Handle_Vrml_Material GetWireMaterial() const;
  
  Standard_EXPORT     Handle_Vrml_Material GetFreeBoundsMaterial() const;
  
  Standard_EXPORT     Handle_Vrml_Material GetUnfreeBoundsMaterial() const;
  //! Converts the shape aShape to <br>
//! VRML format and writes it to the file identified by aFile. <br>
  Standard_EXPORT     void Write(const TopoDS_Shape& aShape,const Standard_CString aFile) const;





protected:





private:



VrmlAPI_RepresentationOfShape myRepresentation;
Handle_VrmlConverter_Drawer myDrawer;
Standard_Real myDeflection;
Handle_VrmlConverter_Projector myPerespectiveCamera;
Handle_VrmlConverter_Projector myOrthographicCamera;
Standard_Real myTransparency;
Standard_Real myShininess;
Handle_Vrml_Material myFrontMaterial;
Handle_Vrml_Material myPointsMaterial;
Handle_Vrml_Material myUisoMaterial;
Handle_Vrml_Material myVisoMaterial;
Handle_Vrml_Material myLineMaterial;
Handle_Vrml_Material myWireMaterial;
Handle_Vrml_Material myFreeBoundsMaterial;
Handle_Vrml_Material myUnfreeBoundsMaterial;
Quantity_Length DX;
Quantity_Length DY;
Quantity_Length DZ;
Quantity_Length XUp;
Quantity_Length YUp;
Quantity_Length ZUp;
Quantity_Length Focus;


};





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


#endif