Beispiel #1
0
        public void createEllipse()
        {
            manualObject.clear();
            manualObject.begin("ManualTwoSidedPropShapeMaterial", OperationType.OT_TRIANGLE_STRIP);
            uint vertexCount = (uint)(numSections * 2);
            uint indexCount  = vertexCount + 2;

            manualObject.estimateVertexCount(vertexCount);
            manualObject.estimateIndexCount(indexCount);
            float increment = 6.28f / numSections;

            for (uint i = 0; i < numSections; ++i)
            {
                float   t = i * increment;
                Vector2 ellipsePosition = innerEllipse.getPoint(t);
                manualObject.position(new Vector3(ellipsePosition.x, ellipsePosition.y, 0));
                manualObject.color(color.r, color.g, color.b, color.a);
                ellipsePosition = outerEllipse.getPoint(t);
                manualObject.position(new Vector3(ellipsePosition.x, ellipsePosition.y, 0));
                manualObject.color(color.r, color.g, color.b, color.a);

                manualObject.index(i * 2);
                manualObject.index(i * 2 + 1);
            }
            //Close the ellipse
            manualObject.index(0);
            manualObject.index(1);
            manualObject.end();
        }
Beispiel #2
0
        public void createObject()
        {
            manualObject.clear();
            manualObject.begin("ManualTwoSidedPropShapeMaterial", OperationType.OT_TRIANGLE_STRIP);
            uint vertexCount = (uint)(4);
            uint indexCount  = vertexCount + 2;

            manualObject.estimateVertexCount(vertexCount);
            manualObject.estimateIndexCount(indexCount);
            //0       1
            //
            //2       3
            //
            float widthHalfExtent  = size.Width / 2.0f;
            float heightHalfExtent = size.Height / 2.0f;

            //Upper Left (0)
            manualObject.position(new Vector3(-widthHalfExtent, heightHalfExtent, 0f));
            manualObject.color(color.r, color.g, color.b, color.a);
            //Upper Right (1)
            manualObject.position(new Vector3(widthHalfExtent, heightHalfExtent, 0f));
            manualObject.color(color.r, color.g, color.b, color.a);
            //Lower Left (2)
            manualObject.position(new Vector3(-widthHalfExtent, -heightHalfExtent, 0f));
            manualObject.color(color.r, color.g, color.b, color.a);
            //Lower Right (3)
            manualObject.position(new Vector3(widthHalfExtent, -heightHalfExtent, 0f));
            manualObject.color(color.r, color.g, color.b, color.a);

            //First Triangle
            manualObject.index(1);
            manualObject.index(0);
            manualObject.index(3);
            //Second Triangle
            manualObject.index(3);
            manualObject.index(2);
            manualObject.index(0);

            manualObject.end();
        }