@Override public Supplier<float[]> createLocalTransformSupplier() { return Suppliers.createTransformSupplier(this, NodeModel::computeLocalTransform); }
@Override public Supplier<float[]> createViewMatrixSupplier() { return Suppliers.createTransformSupplier(this, CameraModel::computeViewMatrix); }
@Override public Supplier<float[]> createGlobalTransformSupplier() { return Suppliers.createTransformSupplier(this, NodeModel::computeGlobalTransform); }
@Override public Supplier<float[]> createProjectionMatrixSupplier( DoubleSupplier aspectRatioSupplier) { return Suppliers.createTransformSupplier(this, (c, t) -> { Float aspectRatio = null; if (aspectRatioSupplier != null) { aspectRatio = (float)aspectRatioSupplier.getAsDouble(); } computeProjectionMatrix(t, aspectRatio); }); }