0028316: Coding Rules - Elimilate confusing aliases of Standard_Real type in V3d_View
[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>
ee2be2a8 25
42cf5bc1 26class Prs3d_Root;
27class Graphic3d_StructureManager;
28class Graphic3d_Structure;
29class Graphic3d_DataStructureManager;
42cf5bc1 30class Geom_Transformation;
31class Graphic3d_Group;
32
42cf5bc1 33class Prs3d_Presentation;
34DEFINE_STANDARD_HANDLE(Prs3d_Presentation, Graphic3d_Structure)
35
36//! Defines a presentation object which can be displayed,
37//! highlighted or erased.
38//! The presentation object stores the results of the
39//! presentation algorithms as defined in the StdPrs
40//! classes and the Prs3d classes inheriting Prs3d_Root.
41//! This presentation object is used to give display
42//! attributes defined at this level to
43//! ApplicationInteractiveServices classes at the level above.
44//! A presentation object is attached to a given Viewer.
45class Prs3d_Presentation : public Graphic3d_Structure
46{
47
48public:
49
42cf5bc1 50 //! Constructs a presentation object
51 //! if <Init> is false, no color initialization is done.
52 Standard_EXPORT Prs3d_Presentation(const Handle(Graphic3d_StructureManager)& theStructManager, const Standard_Boolean theToInit = Standard_True);
53
54 //! Constructs a presentation object.
55 Standard_EXPORT Prs3d_Presentation(const Handle(Graphic3d_StructureManager)& theStructManager, const Handle(Prs3d_Presentation)& thePrs);
56
57 Standard_EXPORT virtual Handle(Graphic3d_Structure) Compute (const Handle(Graphic3d_DataStructureManager)& aProjector) Standard_OVERRIDE;
58
59 //! Returns the new Structure defined for the new visualization
1f7f5a90 60 Standard_EXPORT virtual Handle(Graphic3d_Structure) Compute (const Handle(Graphic3d_DataStructureManager)& theProjector,
61 const Handle(Geom_Transformation)& theTrsf) Standard_OVERRIDE;
62
42cf5bc1 63 //! Returns the new Structure defined for the new visualization
64 Standard_EXPORT virtual void Compute (const Handle(Graphic3d_DataStructureManager)& aProjector, Handle(Graphic3d_Structure)& aStructure) Standard_OVERRIDE;
65
66 //! Returns the new Structure defined for the new visualization
1f7f5a90 67 Standard_EXPORT virtual void Compute (const Handle(Graphic3d_DataStructureManager)& theProjector,
68 const Handle(Geom_Transformation)& theTrsf,
69 Handle(Graphic3d_Structure)& theStructure) Standard_OVERRIDE;
2831708b 70
42cf5bc1 71 Standard_EXPORT void Connect (const Handle(Prs3d_Presentation)& aPresentation);
72
73 Standard_EXPORT void Remove (const Handle(Prs3d_Presentation)& aPresentation);
74
75 Standard_EXPORT void RemoveAll();
76
42cf5bc1 77friend class Prs3d_Root;
78
92efcf78 79 DEFINE_STANDARD_RTTIEXT(Prs3d_Presentation,Graphic3d_Structure)
42cf5bc1 80
42cf5bc1 81private:
42cf5bc1 82
83 Standard_EXPORT Handle(Graphic3d_Group) CurrentGroup() const;
84
42cf5bc1 85};
86
42cf5bc1 87#endif // _Prs3d_Presentation_HeaderFile