Exemplo n.º 1
0
    //	for this json it's RGB, not RGBA
    int WriteAttribute(ref BufferGeometry4_Attribute_Float Attribute, Color[] VectorArray, ModifyColor Modify = null)
    {
        //	gr: maybe pad here
        if (VectorArray == null)
        {
            return(0);
        }

        int VectorSize = 3;

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

        int FirstIndex = Attribute.array.Count / VectorSize;

        var Temp = new Color();

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

        return(FirstIndex);
    }
    //	for this json it's RGB, not RGBA
    void WriteAttribute(ref BufferGeometry4_Attribute_Float Attribute, Color[] VectorArray, ModifyColor Modify = null)
    {
        if (VectorArray == null)
        {
            Attribute = null;
            return;
        }

        int VectorSize = 3;

        //	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.r;
            FloatArray[(i * VectorSize) + 1] = Pos3.g;
            FloatArray[(i * VectorSize) + 2] = Pos3.b;
        }
        Attribute.array = FloatArray;
    }
Exemplo n.º 3
0
 void PadAttribute(ref BufferGeometry4_Attribute_Float Attribute)
 {
     if (Attribute != null)
     {
         return;
     }
     Attribute = new BufferGeometry4_Attribute_Float(1);
 }