]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.g3d/src/org/simantics/proconf/g3d/gizmo/RotateGizmo.java
Removing ancient 3d framework
[simantics/3d.git] / org.simantics.g3d / src / org / simantics / proconf / g3d / gizmo / RotateGizmo.java
diff --git a/org.simantics.g3d/src/org/simantics/proconf/g3d/gizmo/RotateGizmo.java b/org.simantics.g3d/src/org/simantics/proconf/g3d/gizmo/RotateGizmo.java
deleted file mode 100644 (file)
index adc44a1..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-/*******************************************************************************\r
- * Copyright (c) 2007- VTT Technical Research Centre of Finland.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- *     VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.proconf.g3d.gizmo;\r
-\r
-import javax.vecmath.Color4f;\r
-import javax.vecmath.Point3f;\r
-\r
-import com.jme.bounding.BoundingBox;\r
-import com.jme.renderer.Renderer;\r
-import com.jme.scene.TriMesh;\r
-import com.jme.scene.state.AlphaState;\r
-import com.jme.scene.state.MaterialState;\r
-import com.jme.scene.state.ZBufferState;\r
-import com.jme.util.geom.BufferUtils;\r
-\r
-\r
-\r
-public class RotateGizmo extends MultiSelectionGizmo {\r
-\r
-    \r
-    public static String PICK_NAME = "rotate";\r
-    public static String X_NAME = "rx";\r
-    public static String Y_NAME = "ry";\r
-    public static String Z_NAME = "rz";\r
-    public static String XYZ_NAME = "ra";\r
-    \r
-    public static final int X = 0;\r
-    public static final int Y = 1;\r
-    public static final int Z = 2;\r
-    public static final int XYZ = 3;\r
-    \r
-\r
-    \r
-    \r
-    /* (non-Javadoc)\r
-     * @see fi.vtt.proconf.shapeeditor.common.Gizmo#getPickPrefix()\r
-     */\r
-    public String getPickPrefix() {\r
-        return PICK_NAME;\r
-    }\r
-    \r
-    public int getIndexForName(String name) {\r
-        if (!name.startsWith(PICK_NAME)) {\r
-            return -1;\r
-        }\r
-        name = name.substring(PICK_NAME.length());\r
-        if (name.startsWith(X_NAME))\r
-            return X;\r
-        if (name.startsWith(Y_NAME))\r
-            return Y;\r
-        if (name.startsWith(Z_NAME))\r
-            return Z;\r
-        if (name.startsWith(XYZ_NAME))\r
-            return XYZ;\r
-        return -1;\r
-    }\r
-    \r
-\r
-    @Override\r
-    public int getCount() {\r
-        return 4;\r
-    }\r
-\r
-    public RotateGizmo(Renderer renderer) {\r
-       super();\r
-       float radius = 2.f;\r
-       float radius2 = 1.8f;\r
-        int div = 9;\r
-        \r
-        float x[] = new float[div+1];\r
-        float y[] = new float[div+1];\r
-        float x2[] = new float[div+1];\r
-        float y2[] = new float[div+1];\r
-        x[0] = radius;\r
-        y[0] = 0.f;\r
-        x[div] = 0.f;\r
-        y[div] = radius;\r
-        x2[0] = radius2;\r
-        y2[0] = 0.f;\r
-        x2[div] = 0.f;\r
-        y2[div] = radius2;\r
-        \r
-        for (int i = 1; i < div; i++) {\r
-            float angle = (float)i/(float)div;\r
-            angle *= Math.PI * 0.5f;\r
-            float c = (float)Math.cos(angle);\r
-            float s = (float)Math.sin(angle);\r
-            x[i] = radius * c;\r
-            y[i] = radius * s;\r
-            x2[i] = radius2 * c;\r
-            y2[i] = radius2 * s;\r
-\r
-        }\r
-         \r
-        Color4f colorx = new Color4f(0.5f,0.f,0.f,0.5f);\r
-        Color4f colory = new Color4f(0.f,0.5f,0.f,0.5f);\r
-        Color4f colorz = new Color4f(0.f,0.f,0.5f,0.5f);\r
-        Color4f scolorx = new Color4f(1.f,0.f,0.f,0.7f);\r
-        Color4f scolory = new Color4f(0.f,1.f,0.f,0.7f);\r
-        Color4f scolorz = new Color4f(0.f,0.f,1.f,0.7f);\r
-\r
-        \r
-        Color4f colorxyz = new Color4f();\r
-        colorxyz.x = colorx.x + colory.x + colorz.x;\r
-        colorxyz.y = colorx.y + colory.y + colorz.y;\r
-        colorxyz.z = colorx.z +colory.z + colorz.z;\r
-        colorxyz.w = 0.5f;\r
-        \r
-        Color4f scolorxyz = new Color4f();\r
-        scolorxyz.x = scolorx.x + scolory.x + scolorz.x;\r
-        scolorxyz.y = scolorx.y + scolory.y + scolorz.y;\r
-        scolorxyz.z = scolorx.z + scolory.z + scolorz.z;\r
-        scolorxyz.w = 0.5f;\r
-        \r
-        int  numVertices = div*2;\r
-        float coordinates[] = new float[numVertices*3 + numVertices*3];\r
-        float cols[] = new float[numVertices*4*2];\r
-        int[] indices = new int[numVertices*3-6+numVertices*3 - 12];\r
-        for (int i = 0; i < div; i++) {\r
-            if (i == 0) {\r
-                indices[0] = 0;\r
-                indices[1] = 1;\r
-                indices[2] = 2;\r
-                continue;\r
-            }\r
-            int vIndex = i * 2 - 1;\r
-            int index = i * 6 - 3;\r
-            if (i == div - 1) {\r
-                indices[index] = vIndex;\r
-                indices[index+1] = vIndex+1;\r
-                indices[index+2] = vIndex+2;\r
-               \r
-            } else {\r
-                indices[index] = vIndex;\r
-                indices[index+1] = vIndex+1;\r
-                indices[index+2] = vIndex+2;\r
-                indices[index+3] = vIndex+1;\r
-                indices[index+4] = vIndex+3;\r
-                indices[index+5] = vIndex+2;\r
-            }\r
-        }\r
-        \r
-        for (int i = div+1; i < div * 2 - 1; i++) {\r
-            int vIndex = i * 2 - 1;\r
-            int index = i * 6 - 12;\r
-\r
-                indices[index] = vIndex;\r
-                indices[index+1] = vIndex+1;\r
-                indices[index+2] = vIndex+2;\r
-                indices[index+3] = vIndex+1;\r
-                indices[index+4] = vIndex+3;\r
-                indices[index+5] = vIndex+2;\r
-        }\r
-        \r
-        for (int i = 0; i < numVertices*2; i++)\r
-          setColor(cols,i, colorx);\r
-        \r
-        setCoordinate(coordinates,0, new Point3f(0.f, x[0], 0.f));\r
-        for (int i = 1; i < div; i++) {\r
-            int index = i * 2 - 1;\r
-            setCoordinate(coordinates,index,new Point3f(0.f,x[i],y[i]));\r
-            setCoordinate(coordinates,index+1,new Point3f(y[1],x[i],y[i]));  \r
-        }\r
-        setCoordinate(coordinates,numVertices - 1, new Point3f(0.f, 0.f, y[div]));\r
-        \r
-        setCoordinate(coordinates,numVertices, new Point3f(0.f, x2[0], 0.f));\r
-        for (int i = 1; i < div; i++) {\r
-            int index = (div+i) * 2 - 1;\r
-            setCoordinate(coordinates,index,new Point3f(y[1],x[i],y[i]));\r
-            setCoordinate(coordinates,index+1,new Point3f(y2[1],x2[i],y2[i]));  \r
-        }\r
-        setCoordinate(coordinates,numVertices*2 - 1, new Point3f(0.f, 0.f, y2[div]));\r
-       \r
-        TriMesh linex = new TriMesh(PICK_NAME+X_NAME,BufferUtils.createFloatBuffer(coordinates),null,BufferUtils.createFloatBuffer(cols),null,BufferUtils.createIntBuffer(indices));\r
-        \r
-        \r
-        for (int i = 0; i < numVertices*2; i++)\r
-          setColor(cols,i, colory);\r
-        \r
-        setCoordinate(coordinates,0, new Point3f(x[0], 0.f, 0.f));\r
-        for (int i = 1; i < div; i++) {\r
-            int index = i * 2 - 1;\r
-            setCoordinate(coordinates,index,new Point3f(x[i],0.f,y[i]));\r
-            setCoordinate(coordinates,index+1,new Point3f(x[i],y[1],y[i]));  \r
-        }\r
-        setCoordinate(coordinates,numVertices - 1, new Point3f(0.f, 0.f, y[div]));\r
-        \r
-        setCoordinate(coordinates,numVertices, new Point3f(x2[0], 0.f, 0.f));\r
-        for (int i = 1; i < div; i++) {\r
-            int index = (div+i) * 2 - 1;\r
-            setCoordinate(coordinates,index,new Point3f(x[i],y[1],y[i]));\r
-            setCoordinate(coordinates,index+1,new Point3f(x2[i],y2[1],y2[i]));  \r
-        }\r
-        setCoordinate(coordinates,numVertices*2 - 1, new Point3f(0.f, 0.f, y2[div]));\r
-\r
-        TriMesh liney = new TriMesh(PICK_NAME+Y_NAME,BufferUtils.createFloatBuffer(coordinates),null,BufferUtils.createFloatBuffer(cols),null,BufferUtils.createIntBuffer(indices));\r
-        \r
-        \r
-        for (int i = 0; i < numVertices*2; i++)\r
-          setColor(cols,i, colorz);\r
-        \r
-        setCoordinate(coordinates,0, new Point3f(0.f, x[0], 0.f));\r
-        for (int i = 1; i < div; i++) {\r
-            int index = i * 2 - 1;\r
-            setCoordinate(coordinates,index,new Point3f(y[i],x[i],0.f));\r
-            setCoordinate(coordinates,index+1,new Point3f(y[i],x[i],y[1]));  \r
-        }\r
-        setCoordinate(coordinates,numVertices - 1, new Point3f(y[div],0.f, 0.f));\r
-\r
-        setCoordinate(coordinates,numVertices, new Point3f(0.f, x2[0], 0.f));\r
-        for (int i = 1; i < div; i++) {\r
-            int index = (div+i) * 2 - 1;\r
-            setCoordinate(coordinates,index,new Point3f(y[i],x[i],y[1]));\r
-            setCoordinate(coordinates,index+1,new Point3f(y2[i],x2[i],y2[1]));  \r
-        }\r
-        setCoordinate(coordinates,numVertices*2 - 1, new Point3f(y2[div],0.f, 0.f));\r
-\r
-        TriMesh linez = new TriMesh(PICK_NAME+Z_NAME,BufferUtils.createFloatBuffer(coordinates),null,BufferUtils.createFloatBuffer(cols),null,BufferUtils.createIntBuffer(indices));\r
-        \r
-        \r
-        numVertices = (div-2)*3+1;\r
-        coordinates = new float[numVertices*3];\r
-        cols = new float[numVertices*4];\r
-        indices = new int[(div-2)*3*3];\r
-        \r
-        for (int i = 0; i < numVertices; i++)\r
-            setColor(cols,i, colorxyz);\r
-        float center = radius * 0.5f;//(float)Math.cos(Math.PI*0.25);\r
-        setCoordinate(coordinates,0,new Point3f(center,center,center));\r
-        for (int i = 1; i < div; i++) {\r
-            int index = i;\r
-            setCoordinate(coordinates,index,new Point3f(y2[1],x2[i],y2[i]));\r
-        }\r
-        for (int i = 1; i < div; i++) {\r
-            int index = i + div-1 - 1;\r
-            setCoordinate(coordinates,index,new Point3f(y2[i],y2[1],x2[i]));\r
-        }\r
-        for (int i = 1; i < div-1; i++) {\r
-            int index = i + 2*(div-1) -2;\r
-            setCoordinate(coordinates,index,new Point3f(x2[i],y2[i],y2[1]));\r
-        }\r
-        for (int i = 0; i < (div-2)*3; i++) {\r
-            int index = i*3;\r
-            int iindex = i+1;\r
-            indices[index] = 0;\r
-            indices[index+1] = iindex;\r
-            indices[index+2] = iindex+1;\r
-            if (iindex == (numVertices -1))\r
-                indices[index+2] = 1;\r
-            \r
-        }\r
-\r
-        TriMesh trianglexyz = new TriMesh(PICK_NAME+XYZ_NAME,BufferUtils.createFloatBuffer(coordinates),null,BufferUtils.createFloatBuffer(cols),null,BufferUtils.createIntBuffer(indices));\r
-        \r
-        \r
-        getGizmoNode().attachChild(linex);\r
-        getGizmoNode().attachChild(liney);\r
-        getGizmoNode().attachChild(linez);\r
-        getGizmoNode().attachChild(trianglexyz);\r
-        getGizmoNode().setModelBound(new BoundingBox());\r
-        getGizmoNode().updateModelBound();\r
-        \r
-        linex.getBatch(0).setCastsShadows(false);\r
-        liney.getBatch(0).setCastsShadows(false);\r
-        linez.getBatch(0).setCastsShadows(false);\r
-        trianglexyz.getBatch(0).setCastsShadows(false);\r
-        \r
-        setGeometry(0,linex);\r
-        setGeometry(1,liney);\r
-        setGeometry(2,linez);\r
-        setGeometry(3,trianglexyz);\r
-             \r
-        setColor(0,0,colorx);\r
-        setColor(0,1,scolorx);\r
-        setColor(1,0,colory);\r
-        setColor(1,1,scolory);\r
-        setColor(2,0,colorz);\r
-        setColor(2,1,scolorz);\r
-        setColor(3,0,colorxyz);\r
-        setColor(3,1,scolorxyz);\r
-        \r
-        AlphaState as = renderer.createAlphaState();\r
-        as.setBlendEnabled(true);\r
-        as.setSrcFunction(AlphaState.DB_SRC_ALPHA);\r
-        as.setDstFunction(AlphaState.DB_ONE_MINUS_SRC_ALPHA);\r
-        as.setEnabled(true);\r
-        getGizmoNode().setRenderState(as);\r
-        MaterialState ms = renderer.createMaterialState();\r
-        ms.setColorMaterial(MaterialState.CM_AMBIENT_AND_DIFFUSE);\r
-        ms.setMaterialFace(MaterialState.MF_FRONT_AND_BACK);\r
-        getGizmoNode().setRenderState(ms);\r
-        ZBufferState zs = renderer.createZBufferState();\r
-        zs.setFunction(ZBufferState.CF_ALWAYS);\r
-        zs.setEnabled(true);\r
-        getGizmoNode().setRenderState(zs);\r
-        \r
-        \r
-    }\r
-\r
-}
\ No newline at end of file