summaryrefslogtreecommitdiff
path: root/inc/XCAFDoc_MaterialTool.hxx
blob: 57f3104a9c57d7e790d58c26f22f2880c623ebf8 (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
// 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 _XCAFDoc_MaterialTool_HeaderFile
#define _XCAFDoc_MaterialTool_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_XCAFDoc_MaterialTool_HeaderFile
#include <Handle_XCAFDoc_MaterialTool.hxx>
#endif

#ifndef _Handle_XCAFDoc_ShapeTool_HeaderFile
#include <Handle_XCAFDoc_ShapeTool.hxx>
#endif
#ifndef _TDF_Attribute_HeaderFile
#include <TDF_Attribute.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_TCollection_HAsciiString_HeaderFile
#include <Handle_TCollection_HAsciiString.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Handle_TDF_Attribute_HeaderFile
#include <Handle_TDF_Attribute.hxx>
#endif
#ifndef _Handle_TDF_RelocationTable_HeaderFile
#include <Handle_TDF_RelocationTable.hxx>
#endif
class XCAFDoc_ShapeTool;
class TDF_Label;
class Standard_GUID;
class TDF_LabelSequence;
class TCollection_HAsciiString;
class TDF_Attribute;
class TDF_RelocationTable;


//! Provides tools to store and retrieve attributes (materials) <br>
//!          of TopoDS_Shape in and from TDocStd_Document <br>
//!          A Document is intended to hold different <br>
//!          attributes of ONE shape and it's sub-shapes <br>
class XCAFDoc_MaterialTool : public TDF_Attribute {

public:

  
  Standard_EXPORT   XCAFDoc_MaterialTool();
  //! Creates (if not exist) MaterialTool. <br>
  Standard_EXPORT   static  Handle_XCAFDoc_MaterialTool Set(const TDF_Label& L) ;
  
  Standard_EXPORT   static const Standard_GUID& GetID() ;
  //! returns the label under which colors are stored <br>
  Standard_EXPORT     TDF_Label BaseLabel() const;
  //! Returns internal XCAFDoc_ShapeTool tool <br>
  Standard_EXPORT    const Handle_XCAFDoc_ShapeTool& ShapeTool() ;
  //! Returns True if label belongs to a material table and <br>
//!          is a Material definition <br>
  Standard_EXPORT     Standard_Boolean IsMaterial(const TDF_Label& lab) const;
  //! Returns a sequence of materials currently stored <br>
//!          in the material table <br>
  Standard_EXPORT     void GetMaterialLabels(TDF_LabelSequence& Labels) const;
  //! Adds a Material definition to a table and returns its label <br>
  Standard_EXPORT     TDF_Label AddMaterial(const Handle(TCollection_HAsciiString)& aName,const Handle(TCollection_HAsciiString)& aDescription,const Standard_Real aDensity,const Handle(TCollection_HAsciiString)& aDensName,const Handle(TCollection_HAsciiString)& aDensValType) const;
  //! Sets a link with GUID <br>
  Standard_EXPORT     void SetMaterial(const TDF_Label& L,const TDF_Label& MatL) const;
  //! Sets a link with GUID <br>
//!          Adds a Material as necessary <br>
  Standard_EXPORT     void SetMaterial(const TDF_Label& L,const Handle(TCollection_HAsciiString)& aName,const Handle(TCollection_HAsciiString)& aDescription,const Standard_Real aDensity,const Handle(TCollection_HAsciiString)& aDensName,const Handle(TCollection_HAsciiString)& aDensValType) const;
  //! Returns Material assigned to <MatL> <br>
//!          Returns False if no such Material is assigned <br>
  Standard_EXPORT     Standard_Boolean GetMaterial(const TDF_Label& MatL,Handle(TCollection_HAsciiString)& aName,Handle(TCollection_HAsciiString)& aDescription,Standard_Real& aDensity,Handle(TCollection_HAsciiString)& aDensName,Handle(TCollection_HAsciiString)& aDensValType) const;
  //! Find referred material and return density from it <br>
//!          if no material --> return 0 <br>
  Standard_EXPORT   static  Standard_Real GetDensityForShape(const TDF_Label& ShapeL) ;
  
  Standard_EXPORT    const Standard_GUID& ID() const;
  
  Standard_EXPORT     void Restore(const Handle(TDF_Attribute)& with) ;
  
  Standard_EXPORT     Handle_TDF_Attribute NewEmpty() const;
  
  Standard_EXPORT     void Paste(const Handle(TDF_Attribute)& into,const Handle(TDF_RelocationTable)& RT) const;




  DEFINE_STANDARD_RTTI(XCAFDoc_MaterialTool)

protected:




private: 


Handle_XCAFDoc_ShapeTool myShapeTool;


};





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


#endif