/*****************************************************************************
 * $LastChangedDate: 2010-03-26 15:04:03 -0400 (Fri, 26 Mar 2010) $
 * @file
 * @author  Jim E. Brooks  http://www.palomino3d.org
 * @brief   Common subroutines to enable rendering a Graph/Subgraph.
 *//*
 * LEGAL:   COPYRIGHT (C) 2007 JIM E. BROOKS
 *          THIS SOURCE CODE IS RELEASED UNDER THE TERMS
 *          OF THE GNU GENERAL PUBLIC LICENSE VERSION 2 (GPL 2).
 *****************************************************************************/

#ifndef GRAPH_GRAPH_ENABLEMENT_HH
#define GRAPH_GRAPH_ENABLEMENT_HH 1

namespace graph {

////////////////////////////////////////////////////////////////////////////////
/// @brief Private implementation for Graph and Subgraph.
///
/// This class packages common subroutines to enable rendering a Graph/Subgraph.
/// The principle is to enable/disable traversing past a node.
///
class GraphEnablement
{
friend class Graph;
friend class Subgraph;
private:
                GraphEnablement( void ) { }
                ~GraphEnablement() { }
    void        Enable( SwitchNode& switchNode, const bool enable );
    bool        IfEnabled( SwitchNode& switchNode );
};

} // namespace graph

#endif // GRAPH_GRAPH_ENABLEMENT_HH
