0030773: Application Framework - To allow to inherit existing attributes to reuse...
[occt.git] / src / XCAFDoc / XCAFDoc_Dimension.hxx
CommitLineData
9ebaae37 1// Created on: 2015-08-06
2// Created by: Ilya Novikov
3// Copyright (c) 2004-2014 OPEN CASCADE SAS
4//
5// This file is part of Open CASCADE Technology software library.
6//
7// This library is free software; you can redistribute it and/or modify it under
8// the terms of the GNU Lesser General Public License version 2.1 as published
9// by the Free Software Foundation, with special exception defined in the file
10// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11// distribution for complete text of the license and disclaimer of any warranty.
12//
13// Alternatively, this file may be used under the terms of Open CASCADE
14// commercial license or contractual agreement.
15
16#ifndef _XCAFDoc_Dimension_HeaderFile
17#define _XCAFDoc_Dimension_HeaderFile
18
19#include <Standard.hxx>
20#include <Standard_Type.hxx>
21
c99ad5d7 22#include <TDataStd_GenericEmpty.hxx>
9ebaae37 23class Standard_GUID;
24class TDF_Label;
25class TDF_Attribute;
26class TDF_RelocationTable;
27class XCAFDimTolObjects_DimensionObject;
28
b07ce12b 29// resolve name collisions with WinAPI headers
30#ifdef GetObject
31 #undef GetObject
32#endif
9ebaae37 33
34class XCAFDoc_Dimension;
c99ad5d7 35DEFINE_STANDARD_HANDLE(XCAFDoc_Dimension, TDataStd_GenericEmpty)
9ebaae37 36
a8a3b37c 37//! Attribute that identifies a dimension in the GD&T table.
38//! Its parent label is used as a container to store data provided
39//! by XCAFDimTolObjects_DimensionObject.
c99ad5d7 40class XCAFDoc_Dimension : public TDataStd_GenericEmpty
9ebaae37 41{
42
43public:
44
45 Standard_EXPORT XCAFDoc_Dimension();
46
47 Standard_EXPORT static const Standard_GUID& GetID();
48
49 Standard_EXPORT static Handle(XCAFDoc_Dimension) Set (const TDF_Label& theLabel);
50
79104795 51 Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
9ebaae37 52
a8a3b37c 53 //! Updates parent's label and its sub-labels with data taken from theDimensionObject.
54 //! Old data associated with the label will be lost.
9ebaae37 55 Standard_EXPORT void SetObject (const Handle(XCAFDimTolObjects_DimensionObject)& theDimensionObject);
56
c99ad5d7 57 //! Returns dimension object data taken from the parent's label and its sub-labels.
9ebaae37 58 Standard_EXPORT Handle(XCAFDimTolObjects_DimensionObject) GetObject() const;
bc73b006 59
9ebaae37 60
c99ad5d7 61 DEFINE_DERIVED_ATTRIBUTE(XCAFDoc_Dimension,TDataStd_GenericEmpty)
9ebaae37 62
63};
64
65#endif