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

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

#include <Vrml_SeparatorRenderCulling.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_OStream.hxx>


//! defines a Separator node of VRML specifying group properties.
//! This group node performs a push (save) of the traversal state before traversing its children
//! and a pop (restore) after traversing them. This isolates the separator's children from the
//! rest of the scene graph. A separator can include lights, cameras, coordinates, normals,
//! bindings, and all other properties.
//! Separators can also perform render culling. Render culling skips over traversal of the
//! separator's children if they are not going to be rendered, based on the comparison of the
//! separator's bounding box with the current view volume. Culling is controlled by the
//! renderCulling field. These are set to AUTO by default, allowing the implementation to
//! decide whether or not to cull.
class Vrml_Separator 
{
public:

  DEFINE_STANDARD_ALLOC

  
  Standard_EXPORT Vrml_Separator(const Vrml_SeparatorRenderCulling aRenderCulling);
  
  Standard_EXPORT Vrml_Separator();
  
  Standard_EXPORT   void SetRenderCulling (const Vrml_SeparatorRenderCulling aRenderCulling) ;
  
  Standard_EXPORT   Vrml_SeparatorRenderCulling RenderCulling()  const;
  
  Standard_EXPORT   Standard_OStream& Print (Standard_OStream& anOStream) ;




protected:





private:



  Vrml_SeparatorRenderCulling myRenderCulling;
  Standard_Boolean myFlagPrint;


};







#endif // _Vrml_Separator_HeaderFile
