// Copyright (c) 2005-2011 Code Synthesis Tools CC
//
// This program was generated by CodeSynthesis XSD/e, an XML Schema
// to C++ data binding compiler for embedded systems.
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
//

#ifndef SCENE_DESCRIPTION_PSKEL_H
#define SCENE_DESCRIPTION_PSKEL_H

#include <xsde/cxx/version.hxx>

#if (XSDE_INT_VERSION != 3020000L)
#error XSD/e runtime version mismatch
#endif

#include <xsde/cxx/config.hxx>

#ifndef XSDE_ENCODING_UTF8
#error the generated code uses the UTF-8 encodingwhile the XSD/e runtime does not (reconfigure the runtime or change the --char-encoding value)
#endif

#ifndef XSDE_STL
#error the generated code uses STL while the XSD/e runtime does not (reconfigure the runtime or add --no-stl)
#endif

#ifndef XSDE_IOSTREAM
#error the generated code uses iostream while the XSD/e runtime does not (reconfigure the runtime or add --no-iostream)
#endif

#ifndef XSDE_EXCEPTIONS
#error the generated code uses exceptions while the XSD/e runtime does not (reconfigure the runtime or add --no-exceptions)
#endif

#ifndef XSDE_LONGLONG
#error the generated code uses long long while the XSD/e runtime does not (reconfigure the runtime or add --no-long-long)
#endif

#ifndef XSDE_PARSER_VALIDATION
#error the generated code uses validation while the XSD/e runtime does not (reconfigure the runtime or add --suppress-validation)
#endif

#ifdef XSDE_POLYMORPHIC
#error the generated code expects XSD/e runtime without polymorphism support (reconfigure the runtime or add --generate-polymorphic/--runtime-polymorphic)
#endif

#ifndef XSDE_REUSE_STYLE_TIEIN
#error the generated code uses the tiein reuse style while the XSD/e runtime does not (reconfigure the runtime or add --reuse-style-mixin or --reuse-style-none)
#endif

#ifdef XSDE_CUSTOM_ALLOCATOR
#error the XSD/e runtime uses custom allocator while the generated code does not (reconfigure the runtime or add --custom-allocator)
#endif

#include <xsde/cxx/pre.hxx>

// Begin prologue.
//

#include <xsde/cxx/hybrid/any-type.hxx>
#include <xsde/cxx/hybrid/any-type-pskel.hxx>
#include <xsde/cxx/hybrid/any-type-pimpl.hxx>

namespace xml_schema
{
  using ::xsde::cxx::hybrid::any_type;

  using ::xsde::cxx::hybrid::any_type_pskel;
  using ::xsde::cxx::hybrid::any_type_pimpl;
}


//
// End prologue.

// Forward declarations
//
class Vector_pskel;
class Color_pskel;
class BlockType_pskel;
class GroupReferenceType_pskel;
class GroupType_pskel;
class SceneDescriptionType_pskel;

#include <xsde/cxx/ro-string.hxx>

#include <xsde/cxx/parser/xml-schema.hxx>

#include <xsde/cxx/parser/exceptions.hxx>

#include <xsde/cxx/stack.hxx>
#include <xsde/cxx/parser/validating/parser.hxx>
#include <xsde/cxx/parser/validating/xml-schema-pskel.hxx>
#include <xsde/cxx/parser/validating/xml-schema-pimpl.hxx>

#include <xsde/cxx/parser/expat/document.hxx>

#include "SceneDescription.h"

namespace xml_schema
{
  // Built-in XML Schema types mapping.
  //
  using ::xsde::cxx::string_sequence;
  using ::xsde::cxx::qname;
  using ::xsde::cxx::buffer;
  using ::xsde::cxx::time_zone;
  using ::xsde::cxx::gday;
  using ::xsde::cxx::gmonth;
  using ::xsde::cxx::gyear;
  using ::xsde::cxx::gmonth_day;
  using ::xsde::cxx::gyear_month;
  using ::xsde::cxx::date;
  using ::xsde::cxx::time;
  using ::xsde::cxx::date_time;
  using ::xsde::cxx::duration;

  // Base parser skeletons.
  //
  using ::xsde::cxx::parser::parser_base;
  typedef ::xsde::cxx::parser::validating::empty_content parser_empty_content;
  typedef ::xsde::cxx::parser::validating::simple_content parser_simple_content;
  typedef ::xsde::cxx::parser::validating::complex_content parser_complex_content;
  typedef ::xsde::cxx::parser::validating::list_base parser_list_base;

  // Parser skeletons and implementations for the XML Schema
  // built-in types.
  //
  using ::xsde::cxx::parser::validating::any_simple_type_pskel;
  using ::xsde::cxx::parser::validating::any_simple_type_pimpl;

  using ::xsde::cxx::parser::validating::byte_pskel;
  using ::xsde::cxx::parser::validating::byte_pimpl;

  using ::xsde::cxx::parser::validating::unsigned_byte_pskel;
  using ::xsde::cxx::parser::validating::unsigned_byte_pimpl;

  using ::xsde::cxx::parser::validating::short_pskel;
  using ::xsde::cxx::parser::validating::short_pimpl;

  using ::xsde::cxx::parser::validating::unsigned_short_pskel;
  using ::xsde::cxx::parser::validating::unsigned_short_pimpl;

  using ::xsde::cxx::parser::validating::int_pskel;
  using ::xsde::cxx::parser::validating::int_pimpl;

  using ::xsde::cxx::parser::validating::unsigned_int_pskel;
  using ::xsde::cxx::parser::validating::unsigned_int_pimpl;

  using ::xsde::cxx::parser::validating::long_pskel;
  using ::xsde::cxx::parser::validating::long_pimpl;

  using ::xsde::cxx::parser::validating::unsigned_long_pskel;
  using ::xsde::cxx::parser::validating::unsigned_long_pimpl;

  using ::xsde::cxx::parser::validating::integer_pskel;
  using ::xsde::cxx::parser::validating::integer_pimpl;

  using ::xsde::cxx::parser::validating::non_positive_integer_pskel;
  using ::xsde::cxx::parser::validating::non_positive_integer_pimpl;

  using ::xsde::cxx::parser::validating::non_negative_integer_pskel;
  using ::xsde::cxx::parser::validating::non_negative_integer_pimpl;

  using ::xsde::cxx::parser::validating::positive_integer_pskel;
  using ::xsde::cxx::parser::validating::positive_integer_pimpl;

  using ::xsde::cxx::parser::validating::negative_integer_pskel;
  using ::xsde::cxx::parser::validating::negative_integer_pimpl;

  using ::xsde::cxx::parser::validating::boolean_pskel;
  using ::xsde::cxx::parser::validating::boolean_pimpl;

  using ::xsde::cxx::parser::validating::float_pskel;
  using ::xsde::cxx::parser::validating::float_pimpl;

  using ::xsde::cxx::parser::validating::double_pskel;
  using ::xsde::cxx::parser::validating::double_pimpl;

  using ::xsde::cxx::parser::validating::decimal_pskel;
  using ::xsde::cxx::parser::validating::decimal_pimpl;

  using ::xsde::cxx::parser::validating::string_pskel;
  using ::xsde::cxx::parser::validating::string_pimpl;

  using ::xsde::cxx::parser::validating::normalized_string_pskel;
  using ::xsde::cxx::parser::validating::normalized_string_pimpl;

  using ::xsde::cxx::parser::validating::token_pskel;
  using ::xsde::cxx::parser::validating::token_pimpl;

  using ::xsde::cxx::parser::validating::name_pskel;
  using ::xsde::cxx::parser::validating::name_pimpl;

  using ::xsde::cxx::parser::validating::nmtoken_pskel;
  using ::xsde::cxx::parser::validating::nmtoken_pimpl;

  using ::xsde::cxx::parser::validating::nmtokens_pskel;
  using ::xsde::cxx::parser::validating::nmtokens_pimpl;

  using ::xsde::cxx::parser::validating::ncname_pskel;
  using ::xsde::cxx::parser::validating::ncname_pimpl;

  using ::xsde::cxx::parser::validating::language_pskel;
  using ::xsde::cxx::parser::validating::language_pimpl;

  using ::xsde::cxx::parser::validating::id_pskel;
  using ::xsde::cxx::parser::validating::id_pimpl;

  using ::xsde::cxx::parser::validating::idref_pskel;
  using ::xsde::cxx::parser::validating::idref_pimpl;

  using ::xsde::cxx::parser::validating::idrefs_pskel;
  using ::xsde::cxx::parser::validating::idrefs_pimpl;

  using ::xsde::cxx::parser::validating::uri_pskel;
  using ::xsde::cxx::parser::validating::uri_pimpl;

  using ::xsde::cxx::parser::validating::qname_pskel;
  using ::xsde::cxx::parser::validating::qname_pimpl;

  using ::xsde::cxx::parser::validating::base64_binary_pskel;
  using ::xsde::cxx::parser::validating::base64_binary_pimpl;

  using ::xsde::cxx::parser::validating::hex_binary_pskel;
  using ::xsde::cxx::parser::validating::hex_binary_pimpl;

  using ::xsde::cxx::parser::validating::date_pskel;
  using ::xsde::cxx::parser::validating::date_pimpl;

  using ::xsde::cxx::parser::validating::date_time_pskel;
  using ::xsde::cxx::parser::validating::date_time_pimpl;

  using ::xsde::cxx::parser::validating::duration_pskel;
  using ::xsde::cxx::parser::validating::duration_pimpl;

  using ::xsde::cxx::parser::validating::gday_pskel;
  using ::xsde::cxx::parser::validating::gday_pimpl;

  using ::xsde::cxx::parser::validating::gmonth_pskel;
  using ::xsde::cxx::parser::validating::gmonth_pimpl;

  using ::xsde::cxx::parser::validating::gmonth_day_pskel;
  using ::xsde::cxx::parser::validating::gmonth_day_pimpl;

  using ::xsde::cxx::parser::validating::gyear_pskel;
  using ::xsde::cxx::parser::validating::gyear_pimpl;

  using ::xsde::cxx::parser::validating::gyear_month_pskel;
  using ::xsde::cxx::parser::validating::gyear_month_pimpl;

  using ::xsde::cxx::parser::validating::time_pskel;
  using ::xsde::cxx::parser::validating::time_pimpl;

  // Read-only string.
  //
  using ::xsde::cxx::ro_string;

  // Error codes.
  //
  typedef xsde::cxx::parser::expat::xml_error parser_xml_error;
  typedef xsde::cxx::schema_error parser_schema_error;

  // Exceptions.
  //
  typedef xsde::cxx::parser::exception parser_exception;
  typedef xsde::cxx::parser::xml parser_xml;
  typedef xsde::cxx::parser::schema parser_schema;

  // Document parser.
  //
  using xsde::cxx::parser::expat::document_pimpl;

  // Parser context.
  //
  typedef xsde::cxx::parser::context parser_context;
}

class Vector_pskel: public ::xsde::cxx::parser::validating::complex_content
{
  public:
  // Parser callbacks. Override them in your implementation.
  //
  // virtual void
  // pre ();

  // Attributes.
  //
  virtual void
  X (float);

  virtual void
  Y (float);

  virtual void
  Z (float);

  virtual ::Vector
  post_Vector () = 0;

  // Parser construction API.
  //
  void
  parsers (::xml_schema::float_pskel& /* X */,
           ::xml_schema::float_pskel& /* Y */,
           ::xml_schema::float_pskel& /* Z */);

  // Individual attribute parsers.
  //
  void
  X_parser (::xml_schema::float_pskel&);

  void
  Y_parser (::xml_schema::float_pskel&);

  void
  Z_parser (::xml_schema::float_pskel&);

  virtual void
  _reset ();

  // Constructor.
  //
  Vector_pskel ();

  // Implementation details.
  //
  protected:
  Vector_pskel* Vector_impl_;
  Vector_pskel (Vector_pskel*, void*);

  protected:
  virtual bool
  _attribute_impl_phase_one (const ::xsde::cxx::ro_string&,
                             const ::xsde::cxx::ro_string&,
                             const ::xsde::cxx::ro_string&);


  protected:
  ::xml_schema::float_pskel* X_parser_;
  ::xml_schema::float_pskel* Y_parser_;
  ::xml_schema::float_pskel* Z_parser_;

  protected:
  struct v_state_attr_
  {
    bool X;
    bool Y;
    bool Z;
  };

  v_state_attr_ v_state_attr_first_;
  ::xsde::cxx::stack v_state_attr_stack_;

  virtual void
  _pre_a_validate ();

  virtual void
  _post_a_validate ();
};

class Color_pskel: public ::xsde::cxx::parser::validating::complex_content
{
  public:
  // Parser callbacks. Override them in your implementation.
  //
  // virtual void
  // pre ();

  // Attributes.
  //
  virtual void
  R (float);

  virtual void
  G (float);

  virtual void
  B (float);

  virtual ::Color
  post_Color () = 0;

  // Parser construction API.
  //
  void
  parsers (::xml_schema::float_pskel& /* R */,
           ::xml_schema::float_pskel& /* G */,
           ::xml_schema::float_pskel& /* B */);

  // Individual attribute parsers.
  //
  void
  R_parser (::xml_schema::float_pskel&);

  void
  G_parser (::xml_schema::float_pskel&);

  void
  B_parser (::xml_schema::float_pskel&);

  virtual void
  _reset ();

  // Constructor.
  //
  Color_pskel ();

  // Implementation details.
  //
  protected:
  Color_pskel* Color_impl_;
  Color_pskel (Color_pskel*, void*);

  protected:
  virtual bool
  _attribute_impl_phase_one (const ::xsde::cxx::ro_string&,
                             const ::xsde::cxx::ro_string&,
                             const ::xsde::cxx::ro_string&);


  protected:
  ::xml_schema::float_pskel* R_parser_;
  ::xml_schema::float_pskel* G_parser_;
  ::xml_schema::float_pskel* B_parser_;

  protected:
  struct v_state_attr_
  {
    bool R;
    bool G;
    bool B;
  };

  v_state_attr_ v_state_attr_first_;
  ::xsde::cxx::stack v_state_attr_stack_;

  virtual void
  _pre_a_validate ();

  virtual void
  _post_a_validate ();
};

class BlockType_pskel: public ::xsde::cxx::parser::validating::complex_content
{
  public:
  // Parser callbacks. Override them in your implementation.
  //
  // virtual void
  // pre ();

  // Elements.
  //
  virtual void
  Mass (float);

  virtual void
  Size (const ::Vector&);

  virtual void
  Location (const ::Vector&);

  virtual void
  Color (const ::Color&);

  virtual void
  Value (long);

  virtual ::BlockType
  post_BlockType () = 0;

  // Parser construction API.
  //
  void
  parsers (::xml_schema::float_pskel& /* Mass */,
           ::Vector_pskel& /* Size */,
           ::Vector_pskel& /* Location */,
           ::Color_pskel& /* Color */,
           ::xml_schema::integer_pskel& /* Value */);

  // Individual element parsers.
  //
  void
  Mass_parser (::xml_schema::float_pskel&);

  void
  Size_parser (::Vector_pskel&);

  void
  Location_parser (::Vector_pskel&);

  void
  Color_parser (::Color_pskel&);

  void
  Value_parser (::xml_schema::integer_pskel&);

  virtual void
  _reset ();

  // Constructor.
  //
  BlockType_pskel ();

  // Implementation details.
  //
  protected:
  BlockType_pskel* BlockType_impl_;
  BlockType_pskel (BlockType_pskel*, void*);

  protected:
  virtual bool
  _start_element_impl (const ::xsde::cxx::ro_string&,
                       const ::xsde::cxx::ro_string&);

  virtual bool
  _end_element_impl (const ::xsde::cxx::ro_string&,
                     const ::xsde::cxx::ro_string&);

  protected:
  ::xml_schema::float_pskel* Mass_parser_;
  ::Vector_pskel* Size_parser_;
  ::Vector_pskel* Location_parser_;
  ::Color_pskel* Color_parser_;
  ::xml_schema::integer_pskel* Value_parser_;

  public:
  struct v_state_descr_
  {
    void (::BlockType_pskel::*func) (
      unsigned long&,
      unsigned long&,
      const ::xsde::cxx::ro_string&,
      const ::xsde::cxx::ro_string&,
      bool);
    unsigned long state;
    unsigned long count;
  };

  struct v_state_
  {
    v_state_descr_ data[2UL];
    unsigned long size;
  };

  protected:
  v_state_ v_state_first_;
  ::xsde::cxx::stack v_state_stack_;

  virtual void
  _pre_e_validate ();

  virtual void
  _post_e_validate ();

  void
  sequence_0 (unsigned long&,
              unsigned long&,
              const ::xsde::cxx::ro_string&,
              const ::xsde::cxx::ro_string&,
              bool);
};

class GroupReferenceType_pskel: public ::xsde::cxx::parser::validating::complex_content
{
  public:
  // Parser callbacks. Override them in your implementation.
  //
  // virtual void
  // pre ();

  // Elements.
  //
  virtual void
  Location (const ::Vector&);

  virtual void
  Color (const ::Color&);

  virtual void
  Ref (const ::std::string&);

  virtual ::GroupReferenceType
  post_GroupReferenceType () = 0;

  // Parser construction API.
  //
  void
  parsers (::Vector_pskel& /* Location */,
           ::Color_pskel& /* Color */,
           ::xml_schema::idref_pskel& /* Ref */);

  // Individual element parsers.
  //
  void
  Location_parser (::Vector_pskel&);

  void
  Color_parser (::Color_pskel&);

  void
  Ref_parser (::xml_schema::idref_pskel&);

  virtual void
  _reset ();

  // Constructor.
  //
  GroupReferenceType_pskel ();

  // Implementation details.
  //
  protected:
  GroupReferenceType_pskel* GroupReferenceType_impl_;
  GroupReferenceType_pskel (GroupReferenceType_pskel*, void*);

  protected:
  virtual bool
  _start_element_impl (const ::xsde::cxx::ro_string&,
                       const ::xsde::cxx::ro_string&);

  virtual bool
  _end_element_impl (const ::xsde::cxx::ro_string&,
                     const ::xsde::cxx::ro_string&);

  protected:
  ::Vector_pskel* Location_parser_;
  ::Color_pskel* Color_parser_;
  ::xml_schema::idref_pskel* Ref_parser_;

  public:
  struct v_state_descr_
  {
    void (::GroupReferenceType_pskel::*func) (
      unsigned long&,
      unsigned long&,
      const ::xsde::cxx::ro_string&,
      const ::xsde::cxx::ro_string&,
      bool);
    unsigned long state;
    unsigned long count;
  };

  struct v_state_
  {
    v_state_descr_ data[2UL];
    unsigned long size;
  };

  protected:
  v_state_ v_state_first_;
  ::xsde::cxx::stack v_state_stack_;

  virtual void
  _pre_e_validate ();

  virtual void
  _post_e_validate ();

  void
  sequence_0 (unsigned long&,
              unsigned long&,
              const ::xsde::cxx::ro_string&,
              const ::xsde::cxx::ro_string&,
              bool);
};

class GroupType_pskel: public ::xsde::cxx::parser::validating::complex_content
{
  public:
  // Parser callbacks. Override them in your implementation.
  //
  // virtual void
  // pre ();

  // Attributes.
  //
  virtual void
  id (const ::std::string&);

  // Elements.
  //
  enum choice_arm_tag
  {
    Block_tag,
    GroupReference_tag
  };

  virtual void
  choice_arm (choice_arm_tag);

  virtual void
  Block (const ::BlockType&);

  virtual void
  GroupReference (const ::GroupReferenceType&);

  virtual ::GroupType*
  post_GroupType () = 0;

  // Parser construction API.
  //
  void
  parsers (::xml_schema::id_pskel& /* id */,
           ::BlockType_pskel& /* Block */,
           ::GroupReferenceType_pskel& /* GroupReference */);

  // Individual attribute parsers.
  //
  void
  id_parser (::xml_schema::id_pskel&);

  // Individual element parsers.
  //
  void
  Block_parser (::BlockType_pskel&);

  void
  GroupReference_parser (::GroupReferenceType_pskel&);

  virtual void
  _reset ();

  // Constructor.
  //
  GroupType_pskel ();

  // Implementation details.
  //
  protected:
  GroupType_pskel* GroupType_impl_;
  GroupType_pskel (GroupType_pskel*, void*);

  protected:
  virtual bool
  _start_element_impl (const ::xsde::cxx::ro_string&,
                       const ::xsde::cxx::ro_string&);

  virtual bool
  _end_element_impl (const ::xsde::cxx::ro_string&,
                     const ::xsde::cxx::ro_string&);

  protected:
  virtual bool
  _attribute_impl_phase_one (const ::xsde::cxx::ro_string&,
                             const ::xsde::cxx::ro_string&,
                             const ::xsde::cxx::ro_string&);


  protected:
  ::xml_schema::id_pskel* id_parser_;
  ::BlockType_pskel* Block_parser_;
  ::GroupReferenceType_pskel* GroupReference_parser_;

  public:
  struct v_state_descr_
  {
    void (::GroupType_pskel::*func) (
      unsigned long&,
      unsigned long&,
      const ::xsde::cxx::ro_string&,
      const ::xsde::cxx::ro_string&,
      bool);
    unsigned long state;
    unsigned long count;
  };

  struct v_state_
  {
    v_state_descr_ data[3UL];
    unsigned long size;
  };

  protected:
  v_state_ v_state_first_;
  ::xsde::cxx::stack v_state_stack_;

  virtual void
  _pre_e_validate ();

  virtual void
  _post_e_validate ();

  void
  sequence_0 (unsigned long&,
              unsigned long&,
              const ::xsde::cxx::ro_string&,
              const ::xsde::cxx::ro_string&,
              bool);

  void
  choice_0 (unsigned long&,
            unsigned long&,
            const ::xsde::cxx::ro_string&,
            const ::xsde::cxx::ro_string&,
            bool);

  protected:
  struct v_state_attr_
  {
    bool id;
  };

  v_state_attr_ v_state_attr_first_;
  ::xsde::cxx::stack v_state_attr_stack_;

  virtual void
  _pre_a_validate ();

  virtual void
  _post_a_validate ();
};

class SceneDescriptionType_pskel: public ::xsde::cxx::parser::validating::complex_content
{
  public:
  // Parser callbacks. Override them in your implementation.
  //
  // virtual void
  // pre ();

  // Elements.
  //
  virtual void
  Group (::GroupType*);

  virtual void
  Base (const ::BlockType&);

  virtual void
  GroupReference (const ::GroupReferenceType&);

  virtual ::SceneDescriptionType*
  post_SceneDescriptionType () = 0;

  // Parser construction API.
  //
  void
  parsers (::GroupType_pskel& /* Group */,
           ::BlockType_pskel& /* Base */,
           ::GroupReferenceType_pskel& /* GroupReference */);

  // Individual element parsers.
  //
  void
  Group_parser (::GroupType_pskel&);

  void
  Base_parser (::BlockType_pskel&);

  void
  GroupReference_parser (::GroupReferenceType_pskel&);

  virtual void
  _reset ();

  // Constructor.
  //
  SceneDescriptionType_pskel ();

  // Implementation details.
  //
  protected:
  SceneDescriptionType_pskel* SceneDescriptionType_impl_;
  SceneDescriptionType_pskel (SceneDescriptionType_pskel*, void*);

  protected:
  virtual bool
  _start_element_impl (const ::xsde::cxx::ro_string&,
                       const ::xsde::cxx::ro_string&);

  virtual bool
  _end_element_impl (const ::xsde::cxx::ro_string&,
                     const ::xsde::cxx::ro_string&);

  protected:
  ::GroupType_pskel* Group_parser_;
  ::BlockType_pskel* Base_parser_;
  ::GroupReferenceType_pskel* GroupReference_parser_;

  public:
  struct v_state_descr_
  {
    void (::SceneDescriptionType_pskel::*func) (
      unsigned long&,
      unsigned long&,
      const ::xsde::cxx::ro_string&,
      const ::xsde::cxx::ro_string&,
      bool);
    unsigned long state;
    unsigned long count;
  };

  struct v_state_
  {
    v_state_descr_ data[2UL];
    unsigned long size;
  };

  protected:
  v_state_ v_state_first_;
  ::xsde::cxx::stack v_state_stack_;

  virtual void
  _pre_e_validate ();

  virtual void
  _post_e_validate ();

  void
  sequence_0 (unsigned long&,
              unsigned long&,
              const ::xsde::cxx::ro_string&,
              const ::xsde::cxx::ro_string&,
              bool);
};

// Begin epilogue.
//
//
// End epilogue.

#include <xsde/cxx/post.hxx>

#endif // SCENE_DESCRIPTION_PSKEL_H
