Exemple #1
0
    int WriteAttribute(ref BufferGeometry4_Attribute_Float Attribute, Vector2[] VectorArray, ModifyVector2 Modify = null)
    {
        //	gr: maybe pad here
        if (VectorArray == null)
        {
            return(0);
        }

        int VectorSize = 2;

        if (Attribute == null)
        {
            Attribute = new BufferGeometry4_Attribute_Float(VectorSize);
        }

        int FirstIndex = Attribute.array.Count / VectorSize;

        var Temp = new Vector2();

        for (int i = 0; i < VectorArray.Length; i++)
        {
            Temp = VectorArray[i];
            if (Modify != null)
            {
                Modify(ref Temp);
            }
            Attribute.array.Add(Temp.x);
            Attribute.array.Add(Temp.y);
        }

        return(FirstIndex);
    }
    void WriteAttribute(ref BufferGeometry4_Attribute_Float Attribute, Vector2[] VectorArray, ModifyVector2 Modify = null)
    {
        if (VectorArray == null)
        {
            Attribute = null;
            return;
        }

        int VectorSize = 2;

        //	todo: expand array for merging multiple meshes
        Attribute = new BufferGeometry4_Attribute_Float(VectorSize);
        float[] FloatArray = new float[VectorArray.Length * VectorSize];
        for (int i = 0; i < VectorArray.Length; i++)
        {
            var Pos3 = VectorArray[i];
            if (Modify != null)
            {
                Modify(ref Pos3);
            }

            FloatArray[(i * VectorSize) + 0] = Pos3.x;
            FloatArray[(i * VectorSize) + 1] = Pos3.y;
        }
        Attribute.array = FloatArray;
    }