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; }