00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00026 #include <archon/x3d/server/field.H>
00027 #include <archon/x3d/server/geoprop.H>
00028
00029 namespace Archon
00030 {
00031 namespace X3D
00032 {
00033 const NodeType *GeometricPropertyNode::type = 0;
00034
00035 const NodeType *ColorNode::type = 0;
00036 const NodeType *CoordinateNode::type = 0;
00037 const NodeType *NormalNode::type = 0;
00038
00039 const NodeType *Color::type = 0;
00040 const NodeType *ColorRGBA::type = 0;
00041 const NodeType *Coordinate::type = 0;
00042 const NodeType *Normal::type = 0;
00043
00044 void initializeGeopropComponent()
00045 {
00046 vector<const FieldBase *> fields;
00047
00048
00049
00050 GeometricPropertyNode::type =
00051 NodeType::newAbstract("GeometricPropertyNode", false, 0,
00052 Node::type);
00053
00054
00055
00056
00057 ColorNode::type =
00058 NodeType::newAbstract("ColorNode", false, 0,
00059 GeometricPropertyNode::type);
00060
00061
00062
00063
00064 CoordinateNode::type =
00065 NodeType::newAbstract("CoordinateNode", false, 0,
00066 GeometricPropertyNode::type);
00067
00068
00069
00070
00071 NormalNode::type =
00072 NodeType::newAbstract("NormalNode", false, 0,
00073 GeometricPropertyNode::type);
00074
00075
00076
00077
00078 fields.push_back(newExposedField("color", MFColor::type,
00079 &Color::color,
00080 &Color::colorChanged,
00081 &Color::colorStamp));
00082 Color::type =
00083 NodeType::newConcrete("Color", "color", Color::instantiate, &fields,
00084 ColorNode::type);
00085 fields.clear();
00086
00087
00088
00089
00090 fields.push_back(newExposedField("color", MFColorRGBA::type,
00091 &ColorRGBA::color,
00092 &ColorRGBA::colorChanged,
00093 &ColorRGBA::colorStamp));
00094 ColorRGBA::type =
00095 NodeType::newConcrete("ColorRGBA", "color", ColorRGBA::instantiate, &fields,
00096 ColorNode::type);
00097 fields.clear();
00098
00099
00100
00101
00102 fields.push_back(newExposedField("point", MFVec3f::type,
00103 &Coordinate::point,
00104 &Coordinate::pointChanged,
00105 &Coordinate::pointStamp));
00106 Coordinate::type =
00107 NodeType::newConcrete("Coordinate", "coord", Coordinate::instantiate, &fields,
00108 CoordinateNode::type);
00109 fields.clear();
00110
00111
00112
00113
00114 fields.push_back(newExposedField("vector", MFVec3f::type,
00115 &Normal::normal,
00116 &Normal::normalChanged,
00117 &Normal::normalStamp));
00118 Normal::type =
00119 NodeType::newConcrete("Normal", "normal", Normal::instantiate, &fields,
00120 NormalNode::type);
00121 fields.clear();
00122 }
00123 }
00124 }