// File generated by CPPExt (Transient)
//                     Copyright (C) 1991,1995 by
//  
//                      MATRA DATAVISION, FRANCE
//  
// This software is furnished in accordance with the terms and conditions
// of the contract and with the inclusion of the above copyright notice.
// This software or any other copy thereof may not be provided or otherwise
// be made available to any other person. No title to an ownership of the
// software is hereby transferred.
//  
// At the termination of the contract, the software and all copies of this
// software must be deleted.
//
#include <ISession2D_ObjectOwner.jxx>

#ifndef _Standard_TypeMismatch_HeaderFile
#include <Standard_TypeMismatch.hxx>
#endif

ISession2D_ObjectOwner::~ISession2D_ObjectOwner() {}
 


Standard_EXPORT Handle_Standard_Type& ISession2D_ObjectOwner_Type_()
{

    static Handle_Standard_Type aType1 = STANDARD_TYPE(SelectMgr_EntityOwner);
  if ( aType1.IsNull()) aType1 = STANDARD_TYPE(SelectMgr_EntityOwner);
  static Handle_Standard_Type aType2 = STANDARD_TYPE(SelectBasics_EntityOwner);
  if ( aType2.IsNull()) aType2 = STANDARD_TYPE(SelectBasics_EntityOwner);
  static Handle_Standard_Type aType3 = STANDARD_TYPE(MMgt_TShared);
  if ( aType3.IsNull()) aType3 = STANDARD_TYPE(MMgt_TShared);
  static Handle_Standard_Type aType4 = STANDARD_TYPE(Standard_Transient);
  if ( aType4.IsNull()) aType4 = STANDARD_TYPE(Standard_Transient);
 

  static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,aType4,NULL};
  static Handle_Standard_Type _aType = new Standard_Type("ISession2D_ObjectOwner",
			                                 sizeof(ISession2D_ObjectOwner),
			                                 1,
			                                 (Standard_Address)_Ancestors,
			                                 (Standard_Address)NULL);

  return _aType;
}


// DownCast method
//   allow safe downcasting
//
const Handle(ISession2D_ObjectOwner) Handle(ISession2D_ObjectOwner)::DownCast(const Handle(Standard_Transient)& AnObject) 
{
  Handle(ISession2D_ObjectOwner) _anOtherObject;

  if (!AnObject.IsNull()) {
     if (AnObject->IsKind(STANDARD_TYPE(ISession2D_ObjectOwner))) {
       _anOtherObject = Handle(ISession2D_ObjectOwner)((Handle(ISession2D_ObjectOwner)&)AnObject);
     }
  }

  return _anOtherObject ;
}
const Handle(Standard_Type)& ISession2D_ObjectOwner::DynamicType() const 
{ 
  return STANDARD_TYPE(ISession2D_ObjectOwner) ; 
}
Standard_Boolean ISession2D_ObjectOwner::IsKind(const Handle(Standard_Type)& AType) const 
{ 
  return (STANDARD_TYPE(ISession2D_ObjectOwner) == AType || SelectMgr_EntityOwner::IsKind(AType)); 
}
Handle_ISession2D_ObjectOwner::~Handle_ISession2D_ObjectOwner() {}