OSDN Git Service

3983f859602b6dea44ce10253c0c83960910421e
[mikumikustudio/MikuMikuStudio.git] / src / jmetest / renderer / TestDisk.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;
34
35 import com.jme.app.SimpleGame;
36 import com.jme.bounding.BoundingSphere;
37 import com.jme.image.Texture;
38 import com.jme.math.FastMath;
39 import com.jme.math.Quaternion;
40 import com.jme.math.Vector3f;
41 import com.jme.scene.shape.Disk;
42 import com.jme.scene.state.TextureState;
43 import com.jme.util.TextureManager;
44
45 /**
46  * <code>TestLightState</code>
47  * @author Mark Powell
48  * @version $Id: TestDisk.java,v 1.13 2007/08/02 23:54:48 nca Exp $
49  */
50 public class TestDisk extends SimpleGame {
51
52   private Quaternion rotQuat = new Quaternion();
53   private float angle = 0;
54   private Vector3f axis = new Vector3f(1, 1, 0);
55   private Disk t;
56
57   /**
58    * Entry point for the test,
59    * @param args
60    */
61   public static void main(String[] args) {
62     TestDisk app = new TestDisk();
63     app.setConfigShowMode(ConfigShowMode.AlwaysShow);
64     app.start();
65   }
66
67   protected void simpleUpdate() {
68
69     if (timer.getTimePerFrame() < 1) {
70       angle = angle + (timer.getTimePerFrame() * 50);
71       if (angle > 360)
72         angle = 0;
73     }
74
75     rotQuat.fromAngleAxis(angle*FastMath.DEG_TO_RAD, axis);
76
77     t.setLocalRotation(rotQuat);
78   }
79
80   /**
81    * builds the trimesh.
82    * @see com.jme.app.SimpleGame#initGame()
83    */
84   protected void simpleInitGame() {
85     display.setTitle("Disk Test");
86     cam.setLocation(new Vector3f(0,0,45));
87     cam.update();
88
89     t = new Disk("Disk", 16, 32, 10);
90     t.setModelBound(new BoundingSphere());
91     t.updateModelBound();
92
93     rootNode.attachChild(t);
94
95     TextureState ts = display.getRenderer().createTextureState();
96     ts.setEnabled(true);
97     ts.setTexture(
98         TextureManager.loadTexture(
99         TestBoxColor.class.getClassLoader().getResource(
100         "jmetest/data/texture/dirt.jpg"),
101         Texture.MinificationFilter.Trilinear,
102         Texture.MagnificationFilter.Bilinear));
103
104     //rootNode.setRenderState(ts);
105
106     lightState.setTwoSidedLighting(true);
107   }
108 }