// 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_Curve.jxx>

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

ISession2D_Curve::~ISession2D_Curve() {}
 


Standard_EXPORT Handle_Standard_Type& ISession2D_Curve_Type_()
{

    static Handle_Standard_Type aType1 = STANDARD_TYPE(AIS_InteractiveObject);
  if ( aType1.IsNull()) aType1 = STANDARD_TYPE(AIS_InteractiveObject);
  static Handle_Standard_Type aType2 = STANDARD_TYPE(SelectMgr_SelectableObject);
  if ( aType2.IsNull()) aType2 = STANDARD_TYPE(SelectMgr_SelectableObject);
  static Handle_Standard_Type aType3 = STANDARD_TYPE(PrsMgr_PresentableObject);
  if ( aType3.IsNull()) aType3 = STANDARD_TYPE(PrsMgr_PresentableObject);
  static Handle_Standard_Type aType4 = STANDARD_TYPE(MMgt_TShared);
  if ( aType4.IsNull()) aType4 = STANDARD_TYPE(MMgt_TShared);
  static Handle_Standard_Type aType5 = STANDARD_TYPE(Standard_Transient);
  if ( aType5.IsNull()) aType5 = STANDARD_TYPE(Standard_Transient);
 

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

  return _aType;
}


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

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

  return _anOtherObject ;
}
const Handle(Standard_Type)& ISession2D_Curve::DynamicType() const 
{ 
  return STANDARD_TYPE(ISession2D_Curve) ; 
}
Standard_Boolean ISession2D_Curve::IsKind(const Handle(Standard_Type)& AType) const 
{ 
  return (STANDARD_TYPE(ISession2D_Curve) == AType || AIS_InteractiveObject::IsKind(AType)); 
}
Handle_ISession2D_Curve::~Handle_ISession2D_Curve() {}