Beispiel #1
0
        private void generateGizmoParts()
        {
            //Translation Gizmo
            GMDL.Primitives.Arrow translation_x_axis = new GMDL.Primitives.Arrow(0.015f, 0.25f, new Vector3(1.0f, 0.0f, 0.0f), false, 20);
            //Move arrowhead up in place
            Matrix4 t = Matrix4.CreateRotationZ(MathUtils.radians(90));

            translation_x_axis.applyTransform(t);

            GMDL.Primitives.Arrow translation_y_axis = new GMDL.Primitives.Arrow(0.015f, 0.25f, new Vector3(0.0f, 1.0f, 0.0f), false, 20);
            GMDL.Primitives.Arrow translation_z_axis = new GMDL.Primitives.Arrow(0.015f, 0.25f, new Vector3(0.0f, 0.0f, 1.0f), false, 20);
            t = Matrix4.CreateRotationX(MathUtils.radians(90));
            translation_z_axis.applyTransform(t);

            //Generate Geom objects
            translation_x_axis.geom = translation_x_axis.getGeom();
            translation_y_axis.geom = translation_y_axis.getGeom();
            translation_z_axis.geom = translation_z_axis.getGeom();


            GLPrimitiveVaos["default_translation_gizmo_x_axis"] = translation_x_axis.getVAO();
            GLPrimitiveVaos["default_translation_gizmo_y_axis"] = translation_y_axis.getVAO();
            GLPrimitiveVaos["default_translation_gizmo_z_axis"] = translation_z_axis.getVAO();


            //Generate PrimitiveMeshVaos
            for (int i = 0; i < 3; i++)
            {
                string name = "";
                GMDL.Primitives.Primitive arr = null;
                switch (i)
                {
                case 0:
                    arr  = translation_x_axis;
                    name = "default_translation_gizmo_x_axis";
                    break;

                case 1:
                    arr  = translation_y_axis;
                    name = "default_translation_gizmo_y_axis";
                    break;

                case 2:
                    arr  = translation_z_axis;
                    name = "default_translation_gizmo_z_axis";
                    break;
                }

                GLPrimitiveMeshVaos[name]                        = new GLMeshVao();
                GLPrimitiveMeshVaos[name].type                   = TYPES.GIZMOPART;
                GLPrimitiveMeshVaos[name].metaData               = new MeshMetaData();
                GLPrimitiveMeshVaos[name].metaData.batchcount    = arr.geom.indicesCount;
                GLPrimitiveMeshVaos[name].metaData.indicesLength = DrawElementsType.UnsignedInt;
                GLPrimitiveMeshVaos[name].vao                    = GLPrimitiveVaos[name];
                GLPrimitiveMeshVaos[name].material               = GLmaterials["crossMat"];
            }
        }