Direct access to struct fields for GPU compatibility?

Completely untested, but this may be worth trying out. Sure looks like a good way to crash Rhino :slight_smile:

static unsafe double[][] FastVerts(Mesh mesh)
{
    using (var meshAccess = mesh.GetUnsafeLock(false))
    {
        int arrayLength;
        Point3f* points = meshAccess.VertexPoint3fArray(out arrayLength);
        var double2DArray = new double[3][];
        double2DArray[0] = new double[arrayLength];
        double2DArray[1] = new double[arrayLength];
        double2DArray[2] = new double[arrayLength];
        for( int i=0; i<arrayLength; i++ )
        {
            double2DArray[0][i] = points->X;
            double2DArray[1][i] = points->Y;
            double2DArray[2][i] = points->Z;
            points++;
        }
        return double2DArray;
    }
}
1 Like