1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
| import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.File;
public class DotSceneLoader {
public static void main(String argv[]) {
/*
// set up shared object values
m_sGroupName = groupName;
mSceneMgr = yourSceneMgr;
SceneNode *node;
Entity *ent;
Light *light;*/
try {
File fXmlFile = new File("tunnel.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("node");
for (int temp = 0; temp < 2/*nList.getLength()*/; temp++)
{
Node nNode = nList.item(temp);
//if (nNode.getNodeType() == Node.ELEMENT_NODE)
{
Element eElement = (Element) nNode;
//Create node with name
String name=eElement.getAttribute("name");
//node=pAttachNode->createChildSceneNode(name, Vector3::ZERO, Quaternion::IDENTITY);
System.out.println(name);
//Node Position
Element eElement1 = (Element)eElement.getElementsByTagName("position").item(0);
//node->setPosition((Real)atof(eElement.getAttribute("x")),(Real)atof(eElement.getAttribute("y")),(Real)atof(eElement.getAttribute("z")));
System.out.println(eElement1.getAttribute("x")+' '+eElement1.getAttribute("y")+' '+eElement1.getAttribute("z"));
//Node Rotation
eElement1 = (Element)eElement.getElementsByTagName("rotation").item(0); // aller à l'élément rotation
//node->setOrientation((Real)atof(eElement.getAttribute("qw")),(Real)atof(eElement.getAttribute("qx"))),(Real)atof(eElement.getAttribute("qy")),(Real)atof(eElement.getAttribute("qz")));
System.out.println(eElement1.getAttribute("qw")+' '+eElement1.getAttribute("qx")+' '+eElement1.getAttribute("qy")+' '+eElement1.getAttribute("qz"));
//Node Scale
eElement1 = (Element)eElement.getElementsByTagName("scale").item(0); // aller à l'élément scale
//node->setScale((Real)atof(element2->Attribute("x")),(Real)atof(element2->Attribute("y")),(Real)atof(element2->Attribute("z")));
System.out.println(eElement1.getAttribute("x")+' '+eElement1.getAttribute("y")+' '+eElement1.getAttribute("z"));
if (name.substring(0,4).equals("Lamp")||name.substring(0,5).equals("Point"))
{
eElement1 = (Element)eElement.getElementsByTagName("light").item(0);
//light = mSceneMgr->createLight(name);
if (eElement1.getAttribute("type").equals("point"))
{
//light->setType(Light::LT_POINT);
}
//Position Lamp
eElement = (Element)eElement1.getElementsByTagName("position").item(0);
//light->setPosition((Real)atof(element2->Attribute("x")),(Real)atof(element2->Attribute("y")),(Real)atof(element2->Attribute("z")));
System.out.println(eElement.getAttribute("x")+' '+eElement.getAttribute("y")+' '+eElement.getAttribute("z"));
//Attenuation Lamp
eElement = (Element)eElement1.getElementsByTagName("lightAttenuation").item(0); // aller à l'élément attenuation
//light->setAttenuation((Real)atof(element2->Attribute("range")),(Real)atof(element2->Attribute("constant")),(Real)atof(element2->Attribute("linear")),(Real)atof(element2->Attribute("quadratic")));
System.out.println(eElement.getAttribute("range")+' '+eElement.getAttribute("constant")+' '+eElement.getAttribute("linear")+' '+eElement.getAttribute("quadratic"));
//Diffuse Lamp
eElement = (Element)eElement1.getElementsByTagName("colourDiffuse").item(0); // aller à l'élément attenuation
//light->setDiffuseColour((Real)atof(element2->Attribute("r")),(Real)atof(element2->Attribute("g")),(Real)atof(element2->Attribute("b")));
System.out.println(eElement.getAttribute("r")+' '+eElement.getAttribute("g")+' '+eElement.getAttribute("b"));
if (name.substring(0,4).equals("Lamp"))
{
//Specular Lamp
eElement = (Element)eElement1.getElementsByTagName("colourSpecular").item(0); // aller à l'élément attenuation
//light->setSpecularColour((Real)atof(element2->Attribute("r")),(Real)atof(element2->Attribute("g")),(Real)atof(element2->Attribute("b")));
System.out.println(eElement.getAttribute("r")+' '+eElement.getAttribute("g")+' '+eElement.getAttribute("b"));
}
//node->attachObject(light);
}
else
{
if (name.equals("Camera"))
{
//A coder
}
else
{
//Entity
eElement1 = (Element)eElement.getElementsByTagName("entity").item(0);
System.out.println(eElement1.getAttribute("meshFile"));
//ent= mSceneMgr->createEntity(name, element2->Attribute("meshFile"));
//node->attachObject(ent);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
} |
Partager