// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _AIS_ConnectedInteractive_HeaderFile #define _AIS_ConnectedInteractive_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_DefineHandle_HeaderFile #include #endif #ifndef _Handle_AIS_ConnectedInteractive_HeaderFile #include #endif #ifndef _Handle_AIS_InteractiveObject_HeaderFile #include #endif #ifndef _AIS_InteractiveObject_HeaderFile #include #endif #ifndef _PrsMgr_TypeOfPresentation3d_HeaderFile #include #endif #ifndef _AIS_KindOfInteractive_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Handle_PrsMgr_PresentationManager3d_HeaderFile #include #endif #ifndef _Handle_Prs3d_Presentation_HeaderFile #include #endif #ifndef _Handle_Prs3d_Projector_HeaderFile #include #endif #ifndef _Handle_Geom_Transformation_HeaderFile #include #endif #ifndef _Handle_PrsMgr_PresentationManager2d_HeaderFile #include #endif #ifndef _Handle_Graphic2d_GraphicObject_HeaderFile #include #endif #ifndef _Handle_SelectMgr_Selection_HeaderFile #include #endif class AIS_InteractiveObject; class Standard_NotImplemented; class TopLoc_Location; class PrsMgr_PresentationManager3d; class Prs3d_Presentation; class Prs3d_Projector; class Geom_Transformation; class PrsMgr_PresentationManager2d; class Graphic2d_GraphicObject; class SelectMgr_Selection; //! Defines an Interactive Object through a connection to
//! another Interactive Object, which serves as a
//! reference, and which is located elsewhere in the viewer.
//! This allows you to use the Connected Interactive
//! Object without having to recalculate presentation,
//! selection or graphic structure. These are deduced
//! from your reference object.
//! The relation between the connected interactive object
//! and its source is generally one of geometric transformation.
//! Warning
//! An Interactive entity which is view (or projector)
//! dependent requires recalculation of views in hidden
//! parts mode depending on the position of the
//! projector in each view. You should derive the entity's
//! inheritance from ConnectedInteractive and redefine
//! its compute method to enable this type of calculation.
class AIS_ConnectedInteractive : public AIS_InteractiveObject { public: //! Disconnects the previous view and sets highlight
//! mode to 0. This highlights the wireframe presentation
//! aTypeOfPresentation3d.
//! Top_AllView deactivates hidden line removal.
Standard_EXPORT AIS_ConnectedInteractive(const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d = PrsMgr_TOP_AllView); //! Returns KOI_Object
Standard_EXPORT virtual AIS_KindOfInteractive Type() const; //! Returns 1
Standard_EXPORT virtual Standard_Integer Signature() const; //! Establishes the connection between the Connected
//! Interactive Object, anotherIobj, and its reference
//! entity. If a previous connection with an Interactive
//! Object already exists, it is removed by Disconnect.
//! The second syntax also initiates the location of the
//! Connected Interactive Object.
Standard_EXPORT virtual void Connect(const Handle(AIS_InteractiveObject)& anotherIObj) ; Standard_EXPORT virtual void Connect(const Handle(AIS_InteractiveObject)& anotherIobj,const TopLoc_Location& aLocation) ; //! Returns true if there is a connection established
//! between the presentation and its source reference.
Standard_Boolean HasConnection() const; //! Returns the connection with the reference Interactive Object.
const Handle_AIS_InteractiveObject& ConnectedTo() const; //! Clears the connection with a source reference. The
//! presentation will no longer be displayed.
//! Warning Must be done before deleting the presentation.
Standard_EXPORT void Disconnect() ; //! Computes the presentation according to a point of view
//! given by .
//! To be Used when the associated degenerated Presentations
//! have been transformed by which is not a Pure
//! Translation. The HLR Prs can't be deducted automatically
//! WARNING : must be applied
//! to the object to display before computation !!!
Standard_EXPORT virtual void Compute(const Handle(Prs3d_Projector)& aProjector,const Handle(Geom_Transformation)& aTrsf,const Handle(Prs3d_Presentation)& aPresentation) ; Standard_EXPORT virtual void Compute(const Handle(Prs3d_Projector)& aProjector,const Handle(Prs3d_Presentation)& aPresentation) ; //! this method should fill the presentation according to the
//! enumerated mode of the application and to the display parameter
//! of the application.
Standard_EXPORT virtual void Compute(const Handle(PrsMgr_PresentationManager2d)& aPresentationManager,const Handle(Graphic2d_GraphicObject)& aPresentation,const Standard_Integer aMode = 0) ; virtual Standard_Boolean AcceptShapeDecomposition() const; Standard_EXPORT virtual void UpdateLocation() ; //! For this class, the location effect is treated in the
//! compute & computeSelection methods. So the
//! UpdateLocation Methods are redefined to do nothing else
Standard_EXPORT virtual void UpdateLocation(const Handle(SelectMgr_Selection)& aSel) ; DEFINE_STANDARD_RTTI(AIS_ConnectedInteractive) protected: Handle_AIS_InteractiveObject myReference; Handle_AIS_InteractiveObject myOldReference; private: //! Calculates the view aPresentation and its updates.
//! The latter are managed by aPresentationManager.
//! The display mode aMode is 0 by default.
//! this method is redefined virtual;
//! when the instance is connected to another
//! InteractiveObject,this method doesn't
//! compute anything, but just uses the
//! presentation of this last object, with
//! a transformation if there's one stored.
Standard_EXPORT virtual void Compute(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager,const Handle(Prs3d_Presentation)& aPresentation,const Standard_Integer aMode = 0) ; //! Recovers and calculates any sensitive primitive,
//! aSelection, available in Shape mode, specified by
//! aMode. As a rule, these are sensitive faces.
//! This method is defined as virtual. This enables you to
//! implement it in the creation of a new class of
//! Interactive Object. You need to do this and in so
//! doing, redefine this method, if you create a class
//! which enriches the list of signatures and types.
Standard_EXPORT virtual void ComputeSelection(const Handle(SelectMgr_Selection)& aSelection,const Standard_Integer aMode) ; }; #include // other Inline functions and methods (like "C++: function call" methods) #endif