Class ObjMeshReader

java.lang.Object
org.episteme.core.io.AbstractResourceReader<javafx.scene.Group>
org.episteme.natural.biology.loaders.ObjMeshReader
All Implemented Interfaces:
ResourceIO<javafx.scene.Group>, ResourceReader<javafx.scene.Group>

public class ObjMeshReader extends AbstractResourceReader<javafx.scene.Group>
Simple Wavefront OBJ loader for JavaFX 3D.

Parses OBJ files and creates JavaFX TriangleMesh objects. Supports vertices (v), texture coordinates (vt), normals (vn), and faces (f).

Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Constructor Details

    • ObjMeshReader

      public ObjMeshReader()
  • Method Details

    • getResourcePath

      public String getResourcePath()
      Description copied from interface: ResourceIO
      Returns the base path where this resource is located.
    • getSupportedVersions

      public String[] getSupportedVersions()
      Description copied from interface: ResourceIO
      Returns the supported versions of the format this reader/writer handles.

      Each implementation MUST override this method to declare which versions of the underlying format are supported. The returned array should contain version strings in the format's standard notation (e.g., "3.0", "2.1", "Level 3 Version 2").

      Examples:

      • MathML: {"3.0", "2.0"}
      • SBML: {"Level 3 Version 2", "Level 3 Version 1", "Level 2 Version 5"}
      • PhyloXML: {"1.10", "1.00"}

      Returns:
      array of supported version strings, never null (empty array if version-agnostic)
    • getResourceType

      public Class<javafx.scene.Group> getResourceType()
      Description copied from interface: ResourceIO
      Returns the type of resource.
    • loadFromSource

      protected javafx.scene.Group loadFromSource(String id) throws Exception
      Specified by:
      loadFromSource in class AbstractResourceReader<javafx.scene.Group>
      Throws:
      Exception
    • getMiniCatalog

      protected MiniCatalog<javafx.scene.Group> getMiniCatalog()
      Overrides:
      getMiniCatalog in class AbstractResourceReader<javafx.scene.Group>
    • load

      public static javafx.scene.Group load(File file) throws IOException
      Loads an OBJ model from a file.
      Throws:
      IOException
    • load

      public static javafx.scene.Group load(URL url) throws IOException
      Loads an OBJ model from a URL (resource or http).
      Throws:
      IOException
    • loadResource

      public static javafx.scene.Group loadResource(String resourcePath) throws IOException
      Loads an OBJ model from classpath resources.
      Throws:
      IOException
    • load

      public static javafx.scene.Group load(File file, javafx.scene.paint.Color color) throws IOException
      Loads an OBJ model and applies a material color.
      Throws:
      IOException
    • loadResource

      public static javafx.scene.Group loadResource(String resourcePath, javafx.scene.paint.Color color) throws IOException
      Loads an OBJ resource and applies a material color.
      Throws:
      IOException
    • getCategory

      public String getCategory()
      Description copied from interface: ResourceIO
      Returns the category for grouping. MUST be implemented with I18N support.
      Returns:
      the category name
    • getName

      public String getName()
      Description copied from interface: ResourceIO
      Returns the display name of this resource handler. MUST be implemented with I18N support.
      Returns:
      the display name
    • getDescription

      public String getDescription()
      Description copied from interface: ResourceIO
      Returns a short description of this resource handler. MUST be implemented with I18N support.
      Returns:
      the description
    • getLongDescription

      public String getLongDescription()
      Description copied from interface: ResourceIO
      Returns a long description of this resource handler. MUST be implemented with I18N support.
      Returns:
      the long description