0026885: Visualization - drop redundant aspects from structure level
[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>
25#include <TColStd_Array2OfReal.hxx>
26#include <Quantity_Length.hxx>
27class Prs3d_Root;
28class Graphic3d_StructureManager;
29class Graphic3d_Structure;
30class Graphic3d_DataStructureManager;
42cf5bc1 31class Geom_Transformation;
32class Graphic3d_Group;
33
34
35class Prs3d_Presentation;
36DEFINE_STANDARD_HANDLE(Prs3d_Presentation, Graphic3d_Structure)
37
38//! Defines a presentation object which can be displayed,
39//! highlighted or erased.
40//! The presentation object stores the results of the
41//! presentation algorithms as defined in the StdPrs
42//! classes and the Prs3d classes inheriting Prs3d_Root.
43//! This presentation object is used to give display
44//! attributes defined at this level to
45//! ApplicationInteractiveServices classes at the level above.
46//! A presentation object is attached to a given Viewer.
47class Prs3d_Presentation : public Graphic3d_Structure
48{
49
50public:
51
52
53 //! Constructs a presentation object
54 //! if <Init> is false, no color initialization is done.
55 Standard_EXPORT Prs3d_Presentation(const Handle(Graphic3d_StructureManager)& theStructManager, const Standard_Boolean theToInit = Standard_True);
56
57 //! Constructs a presentation object.
58 Standard_EXPORT Prs3d_Presentation(const Handle(Graphic3d_StructureManager)& theStructManager, const Handle(Prs3d_Presentation)& thePrs);
59
60 Standard_EXPORT virtual Handle(Graphic3d_Structure) Compute (const Handle(Graphic3d_DataStructureManager)& aProjector) Standard_OVERRIDE;
61
62 //! Returns the new Structure defined for the new visualization
63 Standard_EXPORT virtual Handle(Graphic3d_Structure) Compute (const Handle(Graphic3d_DataStructureManager)& aProjector, const TColStd_Array2OfReal& AMatrix) Standard_OVERRIDE;
64
65 //! Returns the new Structure defined for the new visualization
66 Standard_EXPORT virtual void Compute (const Handle(Graphic3d_DataStructureManager)& aProjector, Handle(Graphic3d_Structure)& aStructure) Standard_OVERRIDE;
67
68 //! Returns the new Structure defined for the new visualization
69 Standard_EXPORT virtual void Compute (const Handle(Graphic3d_DataStructureManager)& aProjector, const TColStd_Array2OfReal& AMatrix, Handle(Graphic3d_Structure)& aStructure) Standard_OVERRIDE;
2831708b 70
42cf5bc1 71 Standard_EXPORT void Transform (const Handle(Geom_Transformation)& aTransformation);
72
73 Standard_EXPORT void Place (const Quantity_Length X, const Quantity_Length Y, const Quantity_Length Z);
74
75 Standard_EXPORT void Multiply (const Handle(Geom_Transformation)& aTransformation);
76
77 Standard_EXPORT void Move (const Quantity_Length X, const Quantity_Length Y, const Quantity_Length Z);
78
79 Standard_EXPORT Handle(Geom_Transformation) Transformation() const;
80
81 Standard_EXPORT void Connect (const Handle(Prs3d_Presentation)& aPresentation);
82
83 Standard_EXPORT void Remove (const Handle(Prs3d_Presentation)& aPresentation);
84
85 Standard_EXPORT void RemoveAll();
86
87
88friend class Prs3d_Root;
89
90
92efcf78 91 DEFINE_STANDARD_RTTIEXT(Prs3d_Presentation,Graphic3d_Structure)
42cf5bc1 92
93protected:
94
95
96
97
98private:
99
100
101 Standard_EXPORT Handle(Graphic3d_Group) CurrentGroup() const;
102
103
104
105};
106
107
108
109
110
111
112
113#endif // _Prs3d_Presentation_HeaderFile