// 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_ConnectedShape_HeaderFile
#define _AIS_ConnectedShape_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_AIS_ConnectedShape_HeaderFile
#include <Handle_AIS_ConnectedShape.hxx>
#endif

#ifndef _TopoDS_Shape_HeaderFile
#include <TopoDS_Shape.hxx>
#endif
#ifndef _AIS_ConnectedInteractive_HeaderFile
#include <AIS_ConnectedInteractive.hxx>
#endif
#ifndef _PrsMgr_TypeOfPresentation3d_HeaderFile
#include <PrsMgr_TypeOfPresentation3d.hxx>
#endif
#ifndef _Handle_AIS_Shape_HeaderFile
#include <Handle_AIS_Shape.hxx>
#endif
#ifndef _AIS_KindOfInteractive_HeaderFile
#include <AIS_KindOfInteractive.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_AIS_InteractiveObject_HeaderFile
#include <Handle_AIS_InteractiveObject.hxx>
#endif
#ifndef _Handle_Prs3d_Projector_HeaderFile
#include <Handle_Prs3d_Projector.hxx>
#endif
#ifndef _Handle_Prs3d_Presentation_HeaderFile
#include <Handle_Prs3d_Presentation.hxx>
#endif
#ifndef _Handle_Geom_Transformation_HeaderFile
#include <Handle_Geom_Transformation.hxx>
#endif
#ifndef _Handle_PrsMgr_PresentationManager3d_HeaderFile
#include <Handle_PrsMgr_PresentationManager3d.hxx>
#endif
#ifndef _Handle_SelectMgr_Selection_HeaderFile
#include <Handle_SelectMgr_Selection.hxx>
#endif
#ifndef _Handle_PrsMgr_PresentationManager2d_HeaderFile
#include <Handle_PrsMgr_PresentationManager2d.hxx>
#endif
#ifndef _Handle_Graphic2d_GraphicObject_HeaderFile
#include <Handle_Graphic2d_GraphicObject.hxx>
#endif
class Standard_NotImplemented;
class AIS_Shape;
class AIS_InteractiveObject;
class TopLoc_Location;
class Prs3d_Projector;
class Prs3d_Presentation;
class Geom_Transformation;
class PrsMgr_PresentationManager3d;
class SelectMgr_Selection;
class PrsMgr_PresentationManager2d;
class Graphic2d_GraphicObject;
class TopoDS_Shape;


//! Constructs a Connected Interactive Object with an <br>
//! AIS_Shape presentation as its reference Interactive Object. <br>
//! In topological decomposition of the shape, this class <br>
//! assigns the same owners to the sensitive primitives <br>
//! as those in AIS_Shape. Like AIS_Shape, it allows a <br>
//! presentation of hidden parts. These are calculated <br>
//! automatically from the shape of its reference entity. <br>
class AIS_ConnectedShape : public AIS_ConnectedInteractive {

public:

  //! Initializes the type of 3d presentation aTypeOfPresentation <br>
  Standard_EXPORT   AIS_ConnectedShape(const PrsMgr_TypeOfPresentation3d aTypeOfPresentation = PrsMgr_TOP_ProjectorDependant);
  //! Initializes the entity aInteractiveShape and the type of 3d presentation aTypeOfPresentation. <br>
  Standard_EXPORT   AIS_ConnectedShape(const Handle(AIS_Shape)& aInteractiveShape,const PrsMgr_TypeOfPresentation3d aTypeOfPresentation = PrsMgr_TOP_ProjectorDependant);
  //! Initializes the entity aConnectedShape and the type of 3d presentation aTypeOfPresentation. <br>
  Standard_EXPORT   AIS_ConnectedShape(const Handle(AIS_ConnectedShape)& aConnectedShape,const PrsMgr_TypeOfPresentation3d aTypeOfPresentation = PrsMgr_TOP_ProjectorDependant);
  
  Standard_EXPORT   virtual  AIS_KindOfInteractive Type() const;
  
  Standard_EXPORT   virtual  Standard_Integer Signature() const;
  
  Standard_EXPORT   virtual  Standard_Boolean AcceptShapeDecomposition() const;
  //!  Establishes the connection between the Connected <br>
//! Interactive Object, anotherIobj, and its reference <br>
//! entity. If there is already a previous connection with <br>
//! an Interactive Object, this connection is removed. <br>
  Standard_EXPORT   virtual  void Connect(const Handle(AIS_InteractiveObject)& anotherIObj) ;
  //! Establishes the connection between the Connected <br>
//! Interactive Object, anotherIobj, and its reference <br>
//! entity. If there is already a previous connection with <br>
//! an Interactive Object, this connection is removed. <br>
//! This syntax also initiates the location of the Connected Interactive Object. <br>
  Standard_EXPORT   virtual  void Connect(const Handle(AIS_InteractiveObject)& anotherIobj,const TopLoc_Location& aLocation) ;
  //! this method is redefined virtual; <br>
//!          when the instance is connected to another <br>
//!          InteractiveObject,this method doesn't <br>
//!          compute anything, but just uses the <br>
//!          presentation of this last object, with <br>
//!          a transformation if there's one stored. <br>
  Standard_EXPORT   virtual  void Compute(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager,const Handle(Prs3d_Presentation)& aPresentation,const Standard_Integer aMode = 0) ;
  //! this method should fill the presentation according to the <br>
//!          enumerated mode of the application and to the display parameter <br>
//!          of the application. <br>
  Standard_EXPORT   virtual  void Compute(const Handle(PrsMgr_PresentationManager2d)& aPresentationManager,const Handle(Graphic2d_GraphicObject)& aPresentation,const Standard_Integer aMode = 0) ;
  //! Returns the topological shape which is the reference <br>
//! for the connected shape. Sets hilight mode to index <br>
//! 0. This returns a wireframe presentation. <br>
  Standard_EXPORT    const TopoDS_Shape& Shape() ;




  DEFINE_STANDARD_RTTI(AIS_ConnectedShape)

protected:




private: 

  
  Standard_EXPORT   virtual  void Compute(const Handle(Prs3d_Projector)& aProjector,const Handle(Prs3d_Presentation)& aPresentation) ;
  
  Standard_EXPORT   virtual  void Compute(const Handle(Prs3d_Projector)& aProjector,const Handle(Geom_Transformation)& aTrsf,const Handle(Prs3d_Presentation)& aPresentation) ;
  
//! Recovers and calculates any sensitive primitive, <br>
//! aSelection, available in Shape mode, specified by <br>
//! aMode . As a rule, these are sensitive faces. <br>
//! This method is defined as virtual. This enables you to <br>
//! implement it in the creation of a new class of <br>
//! Interactive Object. You need to do this and in so <br>
//! doing, redefine this method, if you create a class <br>
//! which enriches the list of signatures and types. <br>
  Standard_EXPORT   virtual  void ComputeSelection(const Handle(SelectMgr_Selection)& aSelection,const Standard_Integer aMode) ;
  
  Standard_EXPORT     void UpdateShape(const Standard_Boolean WithLocation = Standard_True) ;
  
  Standard_EXPORT     void Compute(const Handle(Prs3d_Projector)& aProjector,const Handle(Prs3d_Presentation)& aPresentation,const TopoDS_Shape& aShape) ;

TopoDS_Shape myOwnSh;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif
