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
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.
17 #ifndef _Prs3d_Presentation_HeaderFile
18 #define _Prs3d_Presentation_HeaderFile
20 #include <Standard.hxx>
21 #include <Standard_Type.hxx>
23 #include <Graphic3d_Structure.hxx>
24 #include <Standard_Boolean.hxx>
25 #include <Quantity_Length.hxx>
27 class Graphic3d_StructureManager;
28 class Graphic3d_Structure;
29 class Graphic3d_DataStructureManager;
30 class Geom_Transformation;
31 class Graphic3d_Group;
34 class Prs3d_Presentation;
35 DEFINE_STANDARD_HANDLE(Prs3d_Presentation, Graphic3d_Structure)
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.
46 class Prs3d_Presentation : public Graphic3d_Structure
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);
55 //! Constructs a presentation object.
56 Standard_EXPORT Prs3d_Presentation(const Handle(Graphic3d_StructureManager)& theStructManager, const Handle(Prs3d_Presentation)& thePrs);
58 Standard_EXPORT virtual Handle(Graphic3d_Structure) Compute (const Handle(Graphic3d_DataStructureManager)& aProjector) Standard_OVERRIDE;
60 //! Returns the new Structure defined for the new visualization
61 Standard_EXPORT virtual Handle(Graphic3d_Structure) Compute (const Handle(Graphic3d_DataStructureManager)& theProjector,
62 const Handle(Geom_Transformation)& theTrsf) Standard_OVERRIDE;
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;
67 //! Returns the new Structure defined for the new visualization
68 Standard_EXPORT virtual void Compute (const Handle(Graphic3d_DataStructureManager)& theProjector,
69 const Handle(Geom_Transformation)& theTrsf,
70 Handle(Graphic3d_Structure)& theStructure) Standard_OVERRIDE;
72 Standard_EXPORT void Connect (const Handle(Prs3d_Presentation)& aPresentation);
74 Standard_EXPORT void Remove (const Handle(Prs3d_Presentation)& aPresentation);
76 Standard_EXPORT void RemoveAll();
78 friend class Prs3d_Root;
80 DEFINE_STANDARD_RTTIEXT(Prs3d_Presentation,Graphic3d_Structure)
84 Standard_EXPORT Handle(Graphic3d_Group) CurrentGroup() const;
88 #endif // _Prs3d_Presentation_HeaderFile