public CloudPoint ApplyTransform(Matrix R, Vector T)
{
// I can guarantee that this will work correctly so we index blindly
var newLocation = (R * location.ToColumnMatrix() + T.ToColumnMatrix()).GetColumnVector(0);
return new CloudPoint(newLocation, this.color, this.normal);
}