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

#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Macro.hxx>

#include <Standard_Integer.hxx>
#include <Handle_TNaming_UsedShapes.hxx>
#include <TopTools_ListOfShape.hxx>
#include <TNaming_ListOfMapOfShape.hxx>
#include <TNaming_ListOfIndexedDataMapOfShapeListOfShape.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <TNaming_Evolution.hxx>
#include <Handle_TNaming_NamedShape.hxx>
#include <Standard_Boolean.hxx>
class TNaming_UsedShapes;
class TopTools_MapOfShape;
class TopoDS_Shape;
class TopTools_IndexedDataMapOfShapeListOfShape;
class TDF_Label;
class TopTools_ListOfShape;
class TNaming_ListOfNamedShape;
class TNaming_NamedShape;
class TNaming_MapOfNamedShape;



class TNaming_Localizer 
{
public:

  DEFINE_STANDARD_ALLOC

  
  Standard_EXPORT TNaming_Localizer();
  
  Standard_EXPORT   void Init (const Handle(TNaming_UsedShapes)& US, const Standard_Integer CurTrans) ;
  
  Standard_EXPORT  const  TopTools_MapOfShape& SubShapes (const TopoDS_Shape& S, const TopAbs_ShapeEnum Type) ;
  
  Standard_EXPORT  const  TopTools_IndexedDataMapOfShapeListOfShape& Ancestors (const TopoDS_Shape& S, const TopAbs_ShapeEnum Type) ;
  
  Standard_EXPORT   void FindFeaturesInAncestors (const TopoDS_Shape& S, const TopoDS_Shape& In, TopTools_MapOfShape& AncInFeatures) ;
  
  Standard_EXPORT   void GoBack (const TopoDS_Shape& S, const TDF_Label& Lab, const TNaming_Evolution Evol, TopTools_ListOfShape& OldS, TNaming_ListOfNamedShape& OldLab) ;
  
  Standard_EXPORT   void Backward (const Handle(TNaming_NamedShape)& NS, const TopoDS_Shape& S, TNaming_MapOfNamedShape& Primitives, TopTools_MapOfShape& ValidShapes) ;
  
  Standard_EXPORT   void FindNeighbourg (const TopoDS_Shape& Cont, const TopoDS_Shape& S, TopTools_MapOfShape& Neighbourg) ;
  
  Standard_EXPORT static   Standard_Boolean IsNew (const TopoDS_Shape& S, const Handle(TNaming_NamedShape)& NS) ;
  
  Standard_EXPORT static   void FindGenerator (const Handle(TNaming_NamedShape)& NS, const TopoDS_Shape& S, TopTools_ListOfShape& theListOfGenerators) ;
  
  //! Finds context of the shape <S>.
  Standard_EXPORT static   void FindShapeContext (const Handle(TNaming_NamedShape)& NS, const TopoDS_Shape& theS, TopoDS_Shape& theSC) ;




protected:





private:



  Standard_Integer myCurTrans;
  Handle(TNaming_UsedShapes) myUS;
  TopTools_ListOfShape myShapeWithSubShapes;
  TNaming_ListOfMapOfShape mySubShapes;
  TopTools_ListOfShape myShapeWithAncestors;
  TNaming_ListOfIndexedDataMapOfShapeListOfShape myAncestors;


};







#endif // _TNaming_Localizer_HeaderFile
