I find the implementation of an implicit Plane
type in Three.js a bit confusing. A positive constant
value offsets the plane from the origin in the negative Y direction. This can be visualized using a PlaneHelper
:
const plane = new THREE.Plane(new THREE.Vector3(0, 1, 0), 1);
const plane_helper = new THREE.PlaneHelper(plane, 1, 0xff0000);
scene.add(plane_helper);
In this case, the plane is pushed down by one unit. This behavior is evident in both the PlaneHelper
implementation (where the constant is negated in the Z direction) and the Plane
method distanceToPoint()
, which adds the distance to the dot product instead of subtracting it.
The documentation references the “Hessian Normal Form,” which follows this convention, but this seems inconsistent with the typical default coordinate conventions in Three.js.
Am I missing something?