2 // Created on: 2015-08-06
3 // Created by: Ilya Novikov
4 // Copyright (c) 2004-2014 OPEN CASCADE SAS
6 // This file is part of Open CASCADE Technology software library.
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
18 #ifndef _XCAFDimTolObjects_DimensionObject_HeaderFile
19 #define _XCAFDimTolObjects_DimensionObject_HeaderFile
21 #include <Standard.hxx>
22 #include <Standard_Type.hxx>
24 #include <XCAFDimTolObjects_DimensionObjectSequence.hxx>
25 #include <XCAFDimTolObjects_DimensionType.hxx>
26 #include <TColStd_HArray1OfReal.hxx>
27 #include <XCAFDimTolObjects_DimensionQualifier.hxx>
28 #include <Standard_Boolean.hxx>
29 #include <XCAFDimTolObjects_DimensionFormVariance.hxx>
30 #include <XCAFDimTolObjects_DimensionGrade.hxx>
31 #include <Standard_Integer.hxx>
32 #include <XCAFDimTolObjects_DimensionModifiersSequence.hxx>
33 #include <TopoDS_Edge.hxx>
35 #include <TColgp_HArray1OfPnt.hxx>
36 #include <Standard_Transient.hxx>
37 #include <Standard_Real.hxx>
38 #include <XCAFDimTolObjects_DimensionModif.hxx>
40 class XCAFDimTolObjects_DimensionObject;
41 DEFINE_STANDARD_HANDLE(XCAFDimTolObjects_DimensionObject, Standard_Transient)
43 //! object to store dimension
44 class XCAFDimTolObjects_DimensionObject : public Standard_Transient
49 Standard_EXPORT XCAFDimTolObjects_DimensionObject();
51 Standard_EXPORT XCAFDimTolObjects_DimensionObject(const Handle(XCAFDimTolObjects_DimensionObject)& theObj);
53 Standard_EXPORT void SetQualifier (const XCAFDimTolObjects_DimensionQualifier theQualifier);
55 Standard_EXPORT XCAFDimTolObjects_DimensionQualifier GetQualifier() const;
57 Standard_EXPORT Standard_Boolean HasQualifier() const;
59 Standard_EXPORT void SetType (const XCAFDimTolObjects_DimensionType theTyupe);
61 Standard_EXPORT XCAFDimTolObjects_DimensionType GetType() const;
63 Standard_EXPORT Standard_Real GetValue() const;
65 Standard_EXPORT Handle(TColStd_HArray1OfReal) GetValues() const;
67 Standard_EXPORT void SetValue (const Standard_Real theValue);
69 Standard_EXPORT void SetValues (const Handle(TColStd_HArray1OfReal)& theValue);
71 Standard_EXPORT Standard_Boolean IsDimWithRange() const;
73 Standard_EXPORT void SetUpperBound (const Standard_Real theUpperBound);
75 Standard_EXPORT void SetLowerBound (const Standard_Real theLowerBound);
77 Standard_EXPORT Standard_Real GetUpperBound() const;
79 Standard_EXPORT Standard_Real GetLowerBound() const;
81 Standard_EXPORT Standard_Boolean IsDimWithPlusMinusTolerance() const;
83 Standard_EXPORT Standard_Boolean SetUpperTolValue (const Standard_Real theUperTolValue);
85 Standard_EXPORT Standard_Boolean SetLowerTolValue (const Standard_Real theLowerTolValue);
87 Standard_EXPORT Standard_Real GetUpperTolValue() const;
89 Standard_EXPORT Standard_Real GetLowerTolValue() const;
91 Standard_EXPORT Standard_Boolean IsDimWithClassOfTolerance() const;
93 Standard_EXPORT void SetClassOfTolerance (const Standard_Boolean theHole, const XCAFDimTolObjects_DimensionFormVariance theFormVariance, const XCAFDimTolObjects_DimensionGrade theGrade);
95 Standard_EXPORT Standard_Boolean GetClassOfTolerance (Standard_Boolean& theHole, XCAFDimTolObjects_DimensionFormVariance& theFormVariance, XCAFDimTolObjects_DimensionGrade& theGrade) const;
97 Standard_EXPORT void SetNbOfDecimalPlaces (const Standard_Integer theL, const Standard_Integer theR);
99 Standard_EXPORT void GetNbOfDecimalPlaces (Standard_Integer& theL, Standard_Integer& theR) const;
101 Standard_EXPORT XCAFDimTolObjects_DimensionModifiersSequence GetModifiers() const;
103 Standard_EXPORT void SetModifiers (const XCAFDimTolObjects_DimensionModifiersSequence& theModifiers);
105 Standard_EXPORT void AddModifier (const XCAFDimTolObjects_DimensionModif theModifier);
107 Standard_EXPORT TopoDS_Edge GetPath() const;
109 Standard_EXPORT void SetPath (const TopoDS_Edge& thePath);
111 Standard_EXPORT Standard_Boolean GetDirection (gp_Dir& theDir) const;
113 Standard_EXPORT Standard_Boolean SetDirection (const gp_Dir& theDir);
115 Standard_EXPORT Handle(TColgp_HArray1OfPnt) GetPoints() const;
117 Standard_EXPORT void SetPoints (const Handle(TColgp_HArray1OfPnt)& thePnts);
120 DEFINE_STANDARD_RTTIEXT(XCAFDimTolObjects_DimensionObject,Standard_Transient)
124 XCAFDimTolObjects_DimensionType myType;
125 Handle(TColStd_HArray1OfReal) myVal;
126 XCAFDimTolObjects_DimensionQualifier myQualifier;
127 Standard_Boolean myIsHole;
128 XCAFDimTolObjects_DimensionFormVariance myFormVariance;
129 XCAFDimTolObjects_DimensionGrade myGrade;
130 Standard_Integer myL;
131 Standard_Integer myR;
132 XCAFDimTolObjects_DimensionModifiersSequence myModifiers;
135 Handle(TColgp_HArray1OfPnt) myPnts;
139 #endif // _XCAFDimTolObjects_DimensionObject_HeaderFile