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

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

#include <Standard_Boolean.hxx>
#include <TopAbs_ShapeEnum.hxx>
class TDF_Label;
class TopLoc_Location;
class XCAFPrs_DataMapOfShapeStyle;
class TopoDS_Shape;
class XCAFPrs_DataMapOfStyleShape;
class XCAFPrs_Style;
class XCAFPrs_Driver;
class XCAFPrs_Style;
class XCAFPrs_DataMapOfShapeStyle;
class XCAFPrs_DataMapOfStyleShape;
class XCAFPrs_DataMapOfStyleTransient;
class XCAFPrs_DataMapNodeOfDataMapOfShapeStyle;
class XCAFPrs_DataMapIteratorOfDataMapOfShapeStyle;
class XCAFPrs_DataMapNodeOfDataMapOfStyleShape;
class XCAFPrs_DataMapIteratorOfDataMapOfStyleShape;
class XCAFPrs_DataMapNodeOfDataMapOfStyleTransient;
class XCAFPrs_DataMapIteratorOfDataMapOfStyleTransient;


//! Presentation (visualiation, selection etc.) tools for
//! DECAF documents
class XCAFPrs 
{
public:

  DEFINE_STANDARD_ALLOC

  
  //! Collect styles defined for shape on label L
  //! and its components and subshapes and fills a map of
  //! shape - style correspondence
  //! The location <loc> is for internal use, it
  //! should be Null location for external call
  Standard_EXPORT static   void CollectStyleSettings (const TDF_Label& L, const TopLoc_Location& loc, XCAFPrs_DataMapOfShapeStyle& settings) ;
  
  //! Iterates on shape (recursively) and splits it
  //! on parts each of which has its own style
  //! (basing on settings collected by CollectStyleSettings())
  //! The DefStyle is default style applied to a shape if
  //! no specific style assignment is applied to it
  //! If force is True, the <shape> is added to a map
  //! even if no styles are redefined for it or its
  //! subshapes
  //! The context is for internal use, it indicates
  //! the type of the shape to which <shape> belongs
  Standard_EXPORT static   Standard_Boolean DispatchStyles (const TopoDS_Shape& shape, const XCAFPrs_DataMapOfShapeStyle& settings, XCAFPrs_DataMapOfStyleShape& items, const XCAFPrs_Style& DefStyle, const Standard_Boolean force = Standard_True, const TopAbs_ShapeEnum context = TopAbs_SHAPE) ;
  
  //! Set ViewNameMode for indicate display names or not.
  Standard_EXPORT static   void SetViewNameMode (const Standard_Boolean viewNameMode) ;
  
  Standard_EXPORT static   Standard_Boolean GetViewNameMode() ;




protected:





private:




friend class XCAFPrs_Driver;
friend class XCAFPrs_Style;
friend class XCAFPrs_DataMapOfShapeStyle;
friend class XCAFPrs_DataMapOfStyleShape;
friend class XCAFPrs_DataMapOfStyleTransient;
friend class XCAFPrs_DataMapNodeOfDataMapOfShapeStyle;
friend class XCAFPrs_DataMapIteratorOfDataMapOfShapeStyle;
friend class XCAFPrs_DataMapNodeOfDataMapOfStyleShape;
friend class XCAFPrs_DataMapIteratorOfDataMapOfStyleShape;
friend class XCAFPrs_DataMapNodeOfDataMapOfStyleTransient;
friend class XCAFPrs_DataMapIteratorOfDataMapOfStyleTransient;

};







#endif // _XCAFPrs_HeaderFile
