Vector3dfx extends Tuple3dfx<Vector3dfx> implements Vector3D<Vector3dfx, Point3dfx> { public ReadOnlyDoubleProperty lengthSquaredProperty() { if (this.lengthSquareProperty == null) { this.lengthSquareProperty = new ReadOnlyDoubleWrapper(this, MathFXAttributeNames.LENGTH_SQUARED); this.lengthSquareProperty.bind(Bindings.createDoubleBinding(() -> Vector3dfx.this.x.doubleValue() * Vector3dfx.this.x.doubleValue() + Vector3dfx.this.y.doubleValue() * Vector3dfx.this.y.doubleValue() + Vector3dfx.this.z.doubleValue() * Vector3dfx.this.z.doubleValue(), this.x, this.y, this.z)); } return this.lengthSquareProperty.getReadOnlyProperty(); } Vector3dfx();  Vector3dfx(DoubleProperty x, DoubleProperty y, DoubleProperty z);  Vector3dfx(Tuple3D<?> tuple);  Vector3dfx(int[] tuple);  Vector3dfx(double[] tuple);  Vector3dfx(int x, int y, int z);  Vector3dfx(float x, float y, float z);  Vector3dfx(double x, double y, double z);  Vector3dfx(long x, long y, long z); @Override Vector3dfx clone(); static Vector3dfx convert(Tuple3D<?> tuple); @Override double getLength(); ReadOnlyDoubleProperty lengthProperty(); @Override double getLengthSquared(); ReadOnlyDoubleProperty lengthSquaredProperty(); @Override GeomFactory3dfx getGeomFactory(); @Override UnmodifiableVector3D<Vector3dfx, Point3dfx> toUnmodifiable();  }
@Test public void lengthSquaredProperty() { Vector3dfx vector = new Vector3dfx(1, 2, 3); assertEpsilonEquals(14, vector.getLengthSquared()); ReadOnlyDoubleProperty property = vector.lengthSquaredProperty(); assertNotNull(property); assertEpsilonEquals(14, property.get()); vector.set(4, -10, 7); assertEpsilonEquals(165, property.get()); }