OSDN Git Service

3ffdc14801141f24b09ee86dedbc17e5d0ee53fd
[mikumikustudio/MikuMikuStudio.git] / src / jmetest / renderer / loader / TestObjJmeWrite.java
1 /*
2  * Copyright (c) 2003-2009 jMonkeyEngine
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are
7  * met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  *   notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  *   notice, this list of conditions and the following disclaimer in the
14  *   documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of 'jMonkeyEngine' nor the names of its contributors 
17  *   may be used to endorse or promote products derived from this software 
18  *   without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32
33 package jmetest.renderer.loader;
34
35 import java.io.ByteArrayInputStream;
36 import java.io.ByteArrayOutputStream;
37 import java.io.IOException;
38 import java.net.URL;
39 import java.util.logging.Level;
40 import java.util.logging.Logger;
41
42 import com.jme.app.SimpleGame;
43 import com.jme.scene.Node;
44 import com.jme.util.export.binary.BinaryImporter;
45 import com.jmex.model.converters.ObjToJme;
46
47 /**
48  * Started Date: Jul 17, 2004<br><br>
49  *
50  * Test the ability to read and write obj files.
51  * 
52  * @author Jack Lindamood
53  */
54 public class TestObjJmeWrite extends SimpleGame{
55     private static final Logger logger = Logger.getLogger(TestObjJmeWrite.class
56             .getName());
57     
58     public static void main(String[] args) {
59         TestObjJmeWrite app=new TestObjJmeWrite();
60         app.setConfigShowMode(ConfigShowMode.AlwaysShow);
61         app.start();
62     }
63     protected void simpleInitGame() {
64         ObjToJme converter=new ObjToJme();
65         try {
66             URL objFile=TestObjJmeWrite.class.getClassLoader().getResource("jmetest/data/model/maggie.obj");
67             converter.setProperty("mtllib",objFile);
68             ByteArrayOutputStream BO=new ByteArrayOutputStream();
69             logger.info("Starting to convert .obj to .jme");
70             converter.convert(objFile.openStream(),BO);
71             
72             //jbr.setProperty("texurl",new File(".").toURL());
73             logger.info("Done converting, now watch how fast it loads!");
74             long time=System.currentTimeMillis();
75             Node r=(Node)BinaryImporter.getInstance().load(new ByteArrayInputStream(BO.toByteArray()));
76             logger.info("Finished loading time is "+(System.currentTimeMillis()-time));
77             r.setLocalScale(.1f);
78             rootNode.attachChild(r);
79         } catch (IOException e) {
80             logger.logp(Level.SEVERE, this.getClass().toString(),
81                     "simpleInitGame()", "Exception", e);
82         }
83     }
84 }