Login  Register

Re: Using multiple models in a scene

Posted by ted_gress on Jun 22, 2018; 6:37pm
URL: https://forum.jogamp.org/Using-multiple-models-in-a-scene-tp4038956p4038958.html

public class CubeObject extends WSObject implements IThreeDimensionalObject {

        @Override
        public void Render() {
                // TODO Auto-generated method stub
               
        }

        ShortBuffer cubeVertices;

           static ShortBuffer cubeTexCoords;

           static FloatBuffer cubeColors;

           static ByteBuffer cubeNormals;
           
           static ByteBuffer cubeIndices;
       
        static  float[] light_position = { -50.f, 50.f, 50.f, 0.f };

        static  float[] light_ambient = { 0.125f, 0.125f, 0.125f, 1.f };

        static  float[] light_diffuse = { 1.0f, 1.0f, 1.0f, 1.f };

        static  float[] material_spec = { 1.0f, 1.0f, 1.0f, 0.f };

        static  float[] zero_vec4 = { 0.0f, 0.0f, 0.0f, 0.f };
       
        public CubeObject()
        {
                 this.cubeVertices = Buffers.newDirectShortBuffer(s_cubeVertices.length);

               cubeVertices.put(s_cubeVertices);

               cubeVertices.flip();
               
               this.cubeColors = Buffers.newDirectFloatBuffer(s_cubeColors.length);

               cubeColors.put(s_cubeColors);

               cubeColors.flip();



               this.cubeNormals = Buffers.newDirectByteBuffer(s_cubeNormals.length);

               cubeNormals.put(s_cubeNormals);

               cubeNormals.flip();



               this.cubeIndices = Buffers.newDirectByteBuffer(s_cubeIndices.length);

               cubeIndices.put(s_cubeIndices);

               cubeIndices.flip();

               
           this.cubeTexCoords = Buffers.newDirectShortBuffer(s_cubeTexCoords.length);

               cubeTexCoords.put(s_cubeTexCoords);

               cubeTexCoords.flip();

             
               
               
               
        }
       
                public  static  short[] s_cubeVertices =

               {

                   -10, 10, 10, 10, -10, 10, 10, 10, 10, -10, -10, 10,

                   

                   -10, 10, -10, 10, -10, -10, 10, 10, -10, -10, -10, -10,

                   

                   -10, -10, 10, 10, -10, -10, 10, -10, 10, -10, -10, -10,

                   

                   -10, 10, 10, 10, 10, -10, 10, 10, 10, -10, 10, -10,

                   

                   10, -10, 10, 10, 10, -10, 10, 10, 10, 10, -10, -10,

                   

                   -10, -10, 10, -10, 10, -10, -10, 10, 10, -10, -10, -10

               };

           public static  short[] s_cubeTexCoords =

               {

                   0, (short) 0xffff, (short) 0xffff, 0, (short) 0xffff, (short) 0xffff, 0, 0,



                   0, (short) 0xffff, (short) 0xffff, 0, (short) 0xffff, (short) 0xffff, 0, 0,



                   0, (short) 0xffff, (short) 0xffff, 0, (short) 0xffff, (short) 0xffff, 0, 0,



                   0, (short) 0xffff, (short) 0xffff, 0, (short) 0xffff, (short) 0xffff, 0, 0,



                   0, (short) 0xffff, (short) 0xffff, 0, (short) 0xffff, (short) 0xffff, 0, 0,



                   0, (short) 0xffff, (short) 0xffff, 0, (short) 0xffff, (short) 0xffff, 0, 0,

               };



           public static  float[] s_cubeColors =

               {

                   40f/255f, 80f/255f, 160f/255f, 255f/255f, 40f/255f, 80f/255f, 160f/255f, 255f/255f,

                   40f/255f, 80f/255f, 160f/255f, 255f/255f, 40f/255f, 80f/255f, 160f/255f, 255f/255f,

                   

                   40f/255f, 80f/255f, 160f/255f, 255f/255f, 40f/255f, 80f/255f, 160f/255f, 255f/255f,

                   40f/255f, 80f/255f, 160f/255f, 255f/255f, 40f/255f, 80f/255f, 160f/255f, 255f/255f,

                   

                   128f/255f, 128f/255f, 128f/255f, 255f/255f, 128f/255f, 128f/255f, 128f/255f, 255f/255f,

                   128f/255f, 128f/255f, 128f/255f, 255f/255f, 128f/255f, 128f/255f, 128f/255f, 255f/255f,

                   

                   128f/255f, 128f/255f, 128f/255f, 255f/255f, 128f/255f, 128f/255f, 128f/255f, 255f/255f,

                   128f/255f, 128f/255f, 128f/255f, 255f/255f, 128f/255f, 128f/255f, 128f/255f, 255f/255f,

                   

                   255f/255f, 110f/255f, 10f/255f, 255f/255f, 255f/255f, 110f/255f, 10f/255f, 255f/255f,

                   255f/255f, 110f/255f, 10f/255f, 255f/255f, 255f/255f, 110f/255f, 10f/255f, 255f/255f,

                   

                   255f/255f, 70f/255f, 60f/255f, 255f/255f, 255f/255f, 70f/255f, 60f/255f, 255f/255f,

                   255f/255f, 70f/255f, 60f/255f, 255f/255f, 255f/255f, 70f/255f, 60f/255f, 255

               };

            public  byte[] s_cubeIndices =

               {

                   0, 3, 1, 2, 0, 1, /* front  */

                   6, 5, 4, 5, 7, 4, /* back   */

                   8, 11, 9, 10, 8, 9, /* top    */

                   15, 12, 13, 12, 14, 13, /* bottom */

                   16, 19, 17, 18, 16, 17, /* right  */

                   23, 20, 21, 20, 22, 21 /* left   */

               };
            public  static  byte[] s_cubeNormals =

               {

                   0, 0, 127, 0, 0, 127, 0, 0, 127, 0, 0, 127,

                   

                   0, 0, -128, 0, 0, -128, 0, 0, -128, 0, 0, -128,

                   

                   0, -128, 0, 0, -128, 0, 0, -128, 0, 0, -128, 0,

                   

                   0, 127, 0, 0, 127, 0, 0, 127, 0, 0, 127, 0,

                   

                   127, 0, 0, 127, 0, 0, 127, 0, 0, 127, 0, 0,

                   

                   -128, 0, 0, -128, 0, 0, -128, 0, 0, -128, 0, 0

               };

       
}