open_toontown_panda3d/direct/src/dcparse/dcMolecularField.cxx

83 lines
2.6 KiB
C++

// Filename: dcMolecularField.cxx
// Created by: drose (05Oct00)
//
////////////////////////////////////////////////////////////////////
#include "dcMolecularField.h"
#include "dcAtomicField.h"
#include "indent.h"
#include <assert.h>
////////////////////////////////////////////////////////////////////
// Function: DCMolecularField::as_molecular_field
// Access: Public, Virtual
// Description: Returns the same field pointer converted to a
// molecular field pointer, if this is in fact a
// molecular field; otherwise, returns NULL.
////////////////////////////////////////////////////////////////////
DCMolecularField *DCMolecularField::
as_molecular_field() {
return this;
}
////////////////////////////////////////////////////////////////////
// Function: DCMolecularField::get_num_atomics
// Access: Public
// Description: Returns the number of atomic fields that make up this
// molecular field.
////////////////////////////////////////////////////////////////////
int DCMolecularField::
get_num_atomics() const {
return _fields.size();
}
////////////////////////////////////////////////////////////////////
// Function: DCMolecularField::get_atomic
// Access: Public
// Description: Returns the nth atomic field that makes up this
// molecular field. This may or may not be a field of
// this particular class; it might be defined in a
// parent class.
////////////////////////////////////////////////////////////////////
DCAtomicField *DCMolecularField::
get_atomic(int n) const {
assert(n >= 0 && n < (int)_fields.size());
return _fields[n];
}
////////////////////////////////////////////////////////////////////
// Function: DCMolecularField::Constructor
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
DCMolecularField::
DCMolecularField() {
_number = 0;
}
////////////////////////////////////////////////////////////////////
// Function: DCMolecularField::write
// Access: Public, Virtual
// Description: Generates a parseable description of the object to
// the indicated output stream.
////////////////////////////////////////////////////////////////////
void DCMolecularField::
write(ostream &out, int indent_level) const {
indent(out, indent_level) << _name;
if (!_fields.empty()) {
Fields::const_iterator fi = _fields.begin();
out << " : " << (*fi)->_name;
++fi;
while (fi != _fields.end()) {
out << ", " << (*fi)->_name;
++fi;
}
}
out << "; // field " << _number << "\n";
}