// 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 _MeshVS_MeshEntityOwner_HeaderFile
#define _MeshVS_MeshEntityOwner_HeaderFile

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_MeshVS_MeshEntityOwner.hxx>

#include <Standard_Address.hxx>
#include <MeshVS_EntityType.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Boolean.hxx>
#include <SelectMgr_EntityOwner.hxx>
#include <SelectMgr_SOPtr.hxx>
#include <Handle_PrsMgr_PresentationManager.hxx>
#include <PrsMgr_PresentationManager3d.hxx>
#include <Quantity_NameOfColor.hxx>
class PrsMgr_PresentationManager;


//! The custom owner. This class provides methods to store owner information:
//! 1) An address of element or node data structure
//! 2) Type of node or element owner assigned
//! 3) ID of node or element owner assigned
class MeshVS_MeshEntityOwner : public SelectMgr_EntityOwner
{

public:

  
  Standard_EXPORT MeshVS_MeshEntityOwner(const SelectMgr_SOPtr& SelObj, const Standard_Integer ID, const Standard_Address MeshEntity, const MeshVS_EntityType& Type, const Standard_Integer Priority = 0, const Standard_Boolean IsGroup = Standard_False);
  
  //! Returns an address of element or node data structure
  Standard_EXPORT   Standard_Address Owner()  const;
  
  //! Returns type of element or node data structure
  Standard_EXPORT   MeshVS_EntityType Type()  const;
  
  //! Returns ID of element or node data structure
  Standard_EXPORT   Standard_Integer ID()  const;
  
  //! Returns true if owner represents group of nodes or elements
  Standard_EXPORT   Standard_Boolean IsGroup()  const;
  
  //! Returns true if owner is hilighted
  Standard_EXPORT virtual   Standard_Boolean IsHilighted (const Handle(PrsMgr_PresentationManager)& PM, const Standard_Integer Mode = 0)  const;
  
  //! Hilights owner
  Standard_EXPORT virtual   void Hilight() ;
  
  //! Hilights owner
  Standard_EXPORT virtual   void Hilight (const Handle(PrsMgr_PresentationManager)& PM, const Standard_Integer Mode = 0) ;
  
  //! Hilights owner with the certain color
  Standard_EXPORT virtual   void HilightWithColor (const Handle(PrsMgr_PresentationManager3d)& PM, const Quantity_NameOfColor theColor, const Standard_Integer Mode = 0) ;
  
  //! Strip hilight of owner
  Standard_EXPORT virtual   void Unhilight (const Handle(PrsMgr_PresentationManager)& PM, const Standard_Integer Mode = 0) ;
  
  Standard_EXPORT virtual   void Clear (const Handle(PrsMgr_PresentationManager)& PM, const Standard_Integer Mode = 0) ;




  DEFINE_STANDARD_RTTI(MeshVS_MeshEntityOwner)

protected:




private: 


  Standard_Address myAddr;
  MeshVS_EntityType myType;
  Standard_Integer myID;
  Standard_Boolean myIsGroup;


};







#endif // _MeshVS_MeshEntityOwner_HeaderFile
