open_toontown_panda3d/panda/src/egg/eggTable.cxx

91 lines
2.6 KiB
C++

// Filename: eggTable.cxx
// Created by: drose (19Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved
//
// All use of this software is subject to the terms of the Panda 3d
// Software license. You should have received a copy of this license
// along with this source code; you will also find a current copy of
// the license at http://www.panda3d.org/license.txt .
//
// To contact the maintainers of this program write to
// panda3d@yahoogroups.com .
//
////////////////////////////////////////////////////////////////////
#include "eggTable.h"
#include <string_utils.h>
#include <indent.h>
TypeHandle EggTable::_type_handle;
////////////////////////////////////////////////////////////////////
// Function: EggTable::write
// Access: Public, Virtual
// Description: Writes the table and all of its children to the
// indicated output stream in Egg format.
////////////////////////////////////////////////////////////////////
void EggTable::
write(ostream &out, int indent_level) const {
test_under_integrity();
switch (get_table_type()) {
case TT_table:
write_header(out, indent_level, "<Table>");
break;
case TT_bundle:
write_header(out, indent_level, "<Bundle>");
break;
default:
// invalid table type
nassertv(false);
}
EggGroupNode::write(out, indent_level + 2);
indent(out, indent_level) << "}\n";
}
////////////////////////////////////////////////////////////////////
// Function: EggTable::string_table_type
// Access: Public, Static
// Description: Returns the TableType value associated with the given
// string representation, or TT_invalid if the string
// does not match any known TableType value.
////////////////////////////////////////////////////////////////////
EggTable::TableType EggTable::
string_table_type(const string &string) {
if (cmp_nocase_uh(string, "table") == 0) {
return TT_table;
} else if (cmp_nocase_uh(string, "bundle") == 0) {
return TT_bundle;
} else {
return TT_invalid;
}
}
////////////////////////////////////////////////////////////////////
// Function: TableType output operator
// Description:
////////////////////////////////////////////////////////////////////
ostream &operator << (ostream &out, EggTable::TableType t) {
switch (t) {
case EggTable::TT_invalid:
return out << "invalid table";
case EggTable::TT_table:
return out << "table";
case EggTable::TT_bundle:
return out << "bundle";
}
nassertr(false, out);
return out << "(**invalid**)";
}