00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "xFileDataNodeReference.h"
00016 #include "indent.h"
00017
00018 TypeHandle XFileDataNodeReference::_type_handle;
00019
00020
00021
00022
00023
00024
00025 XFileDataNodeReference::
00026 XFileDataNodeReference(XFileDataNodeTemplate *object) :
00027 XFileDataNode(object->get_x_file(), object->get_name(),
00028 object->get_template()),
00029 _object(object)
00030 {
00031
00032
00033
00034
00035
00036
00037 _children = object->_children;
00038 _objects = object->_objects;
00039 _children_by_name = object->_children_by_name;
00040 }
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 bool XFileDataNodeReference::
00057 is_reference() const {
00058 return true;
00059 }
00060
00061
00062
00063
00064
00065
00066
00067
00068 bool XFileDataNodeReference::
00069 is_complex_object() const {
00070 return true;
00071 }
00072
00073
00074
00075
00076
00077
00078
00079 void XFileDataNodeReference::
00080 write_text(ostream &out, int indent_level) const {
00081 indent(out, indent_level)
00082 << "{ " << _object->get_name() << " }\n";
00083 }
00084
00085
00086
00087
00088
00089
00090
00091
00092 int XFileDataNodeReference::
00093 get_num_elements() const {
00094 return _object->size();
00095 }
00096
00097
00098
00099
00100
00101
00102
00103 XFileDataObject *XFileDataNodeReference::
00104 get_element(int n) {
00105 return &((*_object)[n]);
00106 }
00107
00108
00109
00110
00111
00112
00113
00114 XFileDataObject *XFileDataNodeReference::
00115 get_element(const string &name) {
00116 return &((*_object)[name]);
00117 }