NodesPropertyControl * PropertyControlCreator::CreateControlForNode(DataNode * dataNode, const Rect & rect, bool createNodeProperties) { Material * material = dynamic_cast<Material *>(dataNode); if(material) { return CreateControlForNode(EPCID_MATERIAL, rect, createNodeProperties); } return CreateControlForNode(EPCID_DATANODE, rect, createNodeProperties); }
NodesPropertyControl * PropertyControlCreator::CreateControlForLandscapeEditor(SceneNode * sceneNode, const Rect & rect, LandscapeEditorPropertyControl::eEditorMode mode) { if(LandscapeEditorPropertyControl::MASK_EDITOR_MODE == mode) { return CreateControlForNode(EPCID_LANDSCAPE_EDITOR_MASK, rect, false); } else if(LandscapeEditorPropertyControl::HEIGHT_EDITOR_MODE == mode) { return CreateControlForNode(EPCID_LANDSCAPE_EDITOR_HEIGHT, rect, false); } return NULL; }
NodesPropertyControl * PropertyControlCreator::CreateControlForNode(SceneNode * sceneNode, const Rect & rect, bool createNodeProperties) { LightNode * light = dynamic_cast<LightNode *>(sceneNode); if(light) { return CreateControlForNode(EPCID_LIGHT, rect, createNodeProperties); } CubeNode *cube = dynamic_cast<CubeNode *> (sceneNode); if(cube) { return CreateControlForNode(EPCID_CUBE, rect, createNodeProperties); } SphereNode *sphere = dynamic_cast<SphereNode *> (sceneNode); if(sphere) { return CreateControlForNode(EPCID_SPHERE, rect, createNodeProperties); } Camera *camera = dynamic_cast<Camera *> (sceneNode); if(camera) { return CreateControlForNode(EPCID_CAMERA, rect, createNodeProperties); } LandscapeNode *landscape = dynamic_cast<LandscapeNode *> (sceneNode); if(landscape) { return CreateControlForNode(EPCID_LANDSCAPE, rect, createNodeProperties); } MeshInstanceNode *mesh = dynamic_cast<MeshInstanceNode *>(sceneNode); //must be later children of MeshInstanceNode if(mesh) { return CreateControlForNode(EPCID_MESH, rect, createNodeProperties); } LodNode *lodNode = dynamic_cast<LodNode*>(sceneNode); if(lodNode) { return CreateControlForNode(EPCID_LODNODE, rect, createNodeProperties); } ParticleEmitterNode * particleEmitterNode = dynamic_cast<ParticleEmitterNode *>(sceneNode); if(particleEmitterNode) { return CreateControlForNode(EPCID_PARTICLE_EMITTER, rect, createNodeProperties); } return CreateControlForNode(EPCID_NODE, rect, createNodeProperties); }
NodesPropertyControl * PropertyControlCreator::CreateControlForNode(SceneNode * sceneNode, const Rect & rect, bool createNodeProperties) { return CreateControlForNode(DetectNodeType(sceneNode), rect, createNodeProperties); }