Vertical points

Height <=> Depth reversal

$point = VerticalPoint::create(...);
$newPoint = $point->heightDepthReversal(
    Vertical $to
); // returns a new VerticalPoint

Vertical Offset

$point = VerticalPoint::create(...);
$newPoint = $point->verticalOffset(
    Vertical $to,
    Length $verticalOffset
); // returns a new VerticalPoint

Vertical Offset and Slope

$point = VerticalPoint::create(...);
$newPoint = $point->verticalOffsetAndSlope(
    Vertical $to,
    Angle $ordinate1OfEvaluationPoint,
    Angle $ordinate2OfEvaluationPoint,
    Length $verticalOffset,
    Angle $inclinationInLatitude,
    Angle $inclinationInLongitude,
    GeographicPoint $horizontalPoint
); // returns a new VerticalPoint