0028263: Coding Rules - clean up definition of the class Graphic3d_MaterialAspect
[occt.git] / src / Prs3d / Prs3d_Presentation.hxx
CommitLineData
42cf5bc1 1// Created on: 1992-08-26
2// Created by: Jean Louis FRENKEL
3// Copyright (c) 1992-1999 Matra Datavision
4// Copyright (c) 1999-2014 OPEN CASCADE SAS
5//
6// This file is part of Open CASCADE Technology software library.
7//
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.
13//
14// Alternatively, this file may be used under the terms of Open CASCADE
15// commercial license or contractual agreement.
16
17#ifndef _Prs3d_Presentation_HeaderFile
18#define _Prs3d_Presentation_HeaderFile
19
20#include <Standard.hxx>
21#include <Standard_Type.hxx>
22
23#include <Graphic3d_Structure.hxx>
24#include <Standard_Boolean.hxx>
42cf5bc1 25#include <Quantity_Length.hxx>
26class Prs3d_Root;
27class Graphic3d_StructureManager;
28class Graphic3d_Structure;
29class Graphic3d_DataStructureManager;
42cf5bc1 30class Geom_Transformation;
31class Graphic3d_Group;
32
33
34class Prs3d_Presentation;
35DEFINE_STANDARD_HANDLE(Prs3d_Presentation, Graphic3d_Structure)
36
37//! Defines a presentation object which can be displayed,
38//! highlighted or erased.
39//! The presentation object stores the results of the
40//! presentation algorithms as defined in the StdPrs
41//! classes and the Prs3d classes inheriting Prs3d_Root.
42//! This presentation object is used to give display
43//! attributes defined at this level to
44//! ApplicationInteractiveServices classes at the level above.
45//! A presentation object is attached to a given Viewer.
46class Prs3d_Presentation : public Graphic3d_Structure
47{
48
49public:
50
42cf5bc1 51 //! Constructs a presentation object
52 //! if <Init> is false, no color initialization is done.
53 Standard_EXPORT Prs3d_Presentation(const Handle(Graphic3d_StructureManager)& theStructManager, const Standard_Boolean theToInit = Standard_True);
54
55 //! Constructs a presentation object.
56 Standard_EXPORT Prs3d_Presentation(const Handle(Graphic3d_StructureManager)& theStructManager, const Handle(Prs3d_Presentation)& thePrs);
57
58 Standard_EXPORT virtual Handle(Graphic3d_Structure) Compute (const Handle(Graphic3d_DataStructureManager)& aProjector) Standard_OVERRIDE;
59
60 //! Returns the new Structure defined for the new visualization
1f7f5a90 61 Standard_EXPORT virtual Handle(Graphic3d_Structure) Compute (const Handle(Graphic3d_DataStructureManager)& theProjector,
62 const Handle(Geom_Transformation)& theTrsf) Standard_OVERRIDE;
63
42cf5bc1 64 //! Returns the new Structure defined for the new visualization
65 Standard_EXPORT virtual void Compute (const Handle(Graphic3d_DataStructureManager)& aProjector, Handle(Graphic3d_Structure)& aStructure) Standard_OVERRIDE;
66
67 //! Returns the new Structure defined for the new visualization
1f7f5a90 68 Standard_EXPORT virtual void Compute (const Handle(Graphic3d_DataStructureManager)& theProjector,
69 const Handle(Geom_Transformation)& theTrsf,
70 Handle(Graphic3d_Structure)& theStructure) Standard_OVERRIDE;
2831708b 71
42cf5bc1 72 Standard_EXPORT void Connect (const Handle(Prs3d_Presentation)& aPresentation);
73
74 Standard_EXPORT void Remove (const Handle(Prs3d_Presentation)& aPresentation);
75
76 Standard_EXPORT void RemoveAll();
77
42cf5bc1 78friend class Prs3d_Root;
79
92efcf78 80 DEFINE_STANDARD_RTTIEXT(Prs3d_Presentation,Graphic3d_Structure)
42cf5bc1 81
42cf5bc1 82private:
42cf5bc1 83
84 Standard_EXPORT Handle(Graphic3d_Group) CurrentGroup() const;
85
42cf5bc1 86};
87
42cf5bc1 88#endif // _Prs3d_Presentation_HeaderFile