public NodeFactory() {
     builtin["Anchor"] = new AnchorNode();
     builtin["Appearance"] = new AppearanceNode();
     builtin["Background"] = new BackgroundNode();
     builtin["Box"] = new BoxNode();
     builtin["Color"] = new ColorNode();
     builtin["Coordinate"] = new CoordinateNode();
     builtin["CoordinateInterpolator"] = new CoordinateInterpolatorNode();
     builtin["Cylinder"] = new CylinderNode();
     builtin["DirectionalLight"] = new DirectionalLightNode();
     builtin["Extrusion"] = new ExtrusionNode();
     builtin["Group"] = new GroupNode();
     builtin["IndexedFaceSet"] = new IndexedFaceSetNode();
     builtin["Material"] = new MaterialNode();
     builtin["NavigationInfo"] = new NavigationInfoNode();
     builtin["OrientationInterpolator"] = new OrientationInterpolatorNode();
     builtin["Normal"] = new NormalNode();
     builtin["PixelTexture"] = new PixelTextureNode();
     builtin["PointLight"] = new PointLightNode();
     builtin["PositionInterpolator"] = new PositionInterpolatorNode();
     builtin["ScalarInterpolator"] = new ScalarInterpolationNode();
     builtin["Shape"] = new ShapeNode();
     builtin["Sphere"] = new SphereNode();
     builtin["TextureCoordinate"] = new TextureCoordinateNode();
     builtin["TimeSensor"] = new TimeSensorNode();
     builtin["Transform"] = new TransformNode();
     builtin["Viewpoint"] = new ViewpointNode();
 }
 private void SetAppearance(Shape3D shape, AppearanceNode appearance)
 {
     shape.Material.DiffuseColor = ConvertColor(((MaterialNode)appearance.material.Node).diffuseColor) * 7;
     shape.Material.SpecularColor = ConvertColor(((MaterialNode)appearance.material.Node).specularColor);
     shape.Material.EmmisiveColor = ConvertColor(((MaterialNode)appearance.material.Node).emissiveColor);
     shape.Material.AmbientIntensity = ((MaterialNode)appearance.material.Node).ambientIntensity.Value;
     shape.Material.Shininess = ((MaterialNode)appearance.material.Node).shininess.Value;
 }