Hi all,

We would like to add support for a new vertex format that allows developers to specify their own normals for a given mesh. This work is small in its scope. It requires one new public class and a few new methods to two existing classes. When normals are provided using this new vertex format, we render the triangle mesh using those normals rather than computing them.

Here is the proposed public API:

Add class:

public final class VertexFormat {

    // Public static constants
    public static final VertexFormat POINT_TEXCOORD
    public static final VertexFormat POINT_NORMAL_TEXCOORD

    // Public getters
    public int getVertexIndexSize()
    public int getPointIndexOffset()
    public int getNormalIndexOffset()
    public int getNormalIndexOffset()

}

Add constructors, properties and methods to existing classes:

TriangleMesh {

    // Public constructor
    public TriangleMesh(VertexFormat vertexFormat)

    // Public property
    public final void setVertexFormat(VertexFormat value)
    public final VertexFormat getVertexFormat()
    public final ObjectProperty<VertexFormat> vertexFormatProperty()

    // Public getters
    public final int getNormalElementSize()
    public final ObservableFloatArray getNormals()
}

PickResult {

    // Public constructor
public PickResult(@NamedArg("node") Node node, @NamedArg("point") Point3D point,
    @NamedArg("distance") double distance, @NamedArg("face") int face,
@NamedArg("normal") Point3D normal, @NamedArg("texCoord") Point2D texCoord)

    // Public getter
    public final Point3D getIntersectedNormal()

}

Please let us know of your thoughts via adding comment to the JIRA: https://javafx-jira.kenai.com/browse/RT-29012

Thanks,
- Chien

Reply via email to