Class MeshLabLauncher

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String MESHLAB_PATH_DEFAULT_LINUX
      Default MeshLab path default for Linux operating system, possibly unneeded if meshlabserver is in path already.
      static java.lang.String MESHLAB_PATH_DEFAULT_MACOS
      Default MeshLab path default for macOS operating system, possibly unneeded if meshlabserver is in path already.
      static java.lang.String MESHLAB_PATH_DEFAULT_WINDOWS
      Default MeshLab path default for Windows 7 or 10 operating system, possibly unneeded if meshlabserver is in path already.
      static java.lang.String MESHLAB_URL
      MeshLab website URL
      static java.lang.String USAGE
      Usage: java [-classpath X3DJSAIL.*.jar] org.web3d.x3d.jsail.MeshLabLauncher sourceFile [-convert [resultFile]] [-home | -help | -properties fileName.properties | -MESHLAB_PATH directoryPath]
    • Constructor Summary

      Constructors 
      Constructor Description
      MeshLabLauncher()  
    • Method Summary

      Modifier and Type Method Description
      static void checkMeshLabPath()
      Check MeshLab local path and also executable name, reset to operating system defaults if necessary.
      static boolean convertModel​(java.lang.String inputFileName, java.lang.String outputFileName)
      Use meshLab to convert model from one file to another.
      static boolean convertModel​(java.lang.String path, java.lang.String inputFileName, java.lang.String outputFileName)
      Use meshLab to convert model from one file to another.
      protected static java.lang.String executeCommand​(java.lang.String command)
      Launch MeshLab in operating system and run command.
      static boolean exportModelToFile​(X3DObject modelToExport, java.lang.String path, java.lang.String fileName)
      TODO: Use MeshLab to export geometry to STL
      static boolean exportSTLtoFile​(X3DObject modelToExport, java.lang.String path, java.lang.String fileName)
      TODO: Use MeshLab to export geometry to file
      static java.lang.String getMeshLabAnalytics​(X3DObject modelOfInterest)
      TODO: Get MeshLab metrics for X3D model of interest.
      static MetadataSetObject getMeshLabAnalyticsX3dMetadataSet​(X3DObject modelOfInterest)
      TODO: Get MeshLab metrics as MetadataSet object.
      static java.lang.String getMeshLabPath()
      Get directory path for location of meshlabserver program.
      static java.lang.String getMeshLabServerExecutableName()
      Get directory path for location of meshlabserver program: meshlabserver.exe on Windows, meshlabserver otherwise.
      static java.lang.String getMeshLabVersion()
      Get MeshLab version.
      static java.lang.String getPriorMeshLabTraceLogContents()
      Get contents of MeshLab trace log file produced during most recent MeshLab operation.
      static java.lang.String getPriorMeshLabTraceLogFilePath()
      Get name of MeshLab trace log file produced during most recent MeshLab operation.
      static boolean hasMeshLab()
      Determine if MeshLab is locally available.
      static X3DObject importModel​(java.lang.String fileName)
      Use meshLab to import model to X3D.
      static X3DObject importModel​(java.lang.String path, java.lang.String fileName)
      Use meshLab to import model to X3D.
      X3DObject importSTL​(java.lang.String path, java.lang.String fileName)
      TODO: Use meshLab to import STL geometry as X3D model
      static void initialize()
      Initialize this MeshLabLauncher instance to default values.
      static void launchMeshLabWebPage()
      Open MeshLab page
      static void main​(java.lang.String[] args)
      Default main() method provided for test and debugging purposes, invoking run() method.
      static void run​(java.lang.String arguments)
      Utility run() method provided for test and debugging purposes, allowing invocation with a single String (rather than a String[] array).
      static void run​(java.lang.String[] args)
      Default run() method provided for test and debugging purposes, first initializing ConfigurationProperties then reading properties file (if any) and processing arguments.
      static void setMeshLabPath​(java.lang.String newValue)
      Set directory path for location of meshlabserver program.
      static void setMeshLabServerExecutableName​(java.lang.String newValue)
      Set meshLabServerExecutableName for alternate name of meshlabserver program.
      static void setPriorMeshLabTraceLogFilePath​(java.lang.String value)
      Set name of MeshLab trace log file produced during most recent MeshLab operation.
      static boolean wasPriorCommandSuccessful()
      Report whether prior command execution was successful.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MeshLabLauncher

        public MeshLabLauncher()
    • Method Detail

      • getMeshLabServerExecutableName

        public static final java.lang.String getMeshLabServerExecutableName()
        Get directory path for location of meshlabserver program: meshlabserver.exe on Windows, meshlabserver otherwise.
        Returns:
        name of meshlabserver program
        See Also:
        checkMeshLabPath(), setMeshLabPath(String)
      • setMeshLabServerExecutableName

        public static final void setMeshLabServerExecutableName​(java.lang.String newValue)
        Set meshLabServerExecutableName for alternate name of meshlabserver program.
        Parameters:
        newValue - is new value to assign
      • getMeshLabPath

        public static final java.lang.String getMeshLabPath()
        Get directory path for location of meshlabserver program.
        Returns:
        directory path for location of meshlabserver program
      • setMeshLabPath

        public static final void setMeshLabPath​(java.lang.String newValue)
        Set directory path for location of meshlabserver program.
        Parameters:
        newValue - is new value to assign
      • wasPriorCommandSuccessful

        public static boolean wasPriorCommandSuccessful()
        Report whether prior command execution was successful.
        Returns:
        whether prior command execution was successful. Warning: meshlabserver may popup an exception window while running headless (not very smart) which can cause exception to be lost following timeout.
        See Also:
        StackOverflow: possible to capture pop-up message box?
      • convertModel

        public static boolean convertModel​(java.lang.String inputFileName,
                                           java.lang.String outputFileName)
        Use meshLab to convert model from one file to another.
        Parameters:
        inputFileName - for input file
        outputFileName - for output file
        Returns:
        whether successful
        See Also:
        MeshLab, Wikipedia: MeshLab
      • convertModel

        public static boolean convertModel​(java.lang.String path,
                                           java.lang.String inputFileName,
                                           java.lang.String outputFileName)
        Use meshLab to convert model from one file to another.
        Parameters:
        path - directory path to file of interest
        inputFileName - for input file
        outputFileName - for output file
        Returns:
        whether successful
        See Also:
        MeshLab, Wikipedia: MeshLab
      • importModel

        public static X3DObject importModel​(java.lang.String fileName)
        Use meshLab to import model to X3D.
        Parameters:
        fileName - for input file
        Returns:
        result, null if unsuccessful
        See Also:
        MeshLab, Wikipedia: MeshLab
      • importModel

        public static X3DObject importModel​(java.lang.String path,
                                            java.lang.String fileName)
        Use meshLab to import model to X3D.
        Parameters:
        path - directory path to file of interest
        fileName - for input file
        Returns:
        result, null if unsuccessful
        See Also:
        MeshLab, Wikipedia: MeshLab
      • importSTL

        public X3DObject importSTL​(java.lang.String path,
                                   java.lang.String fileName)
        TODO: Use meshLab to import STL geometry as X3D model
        Parameters:
        path - directory path to file of interest
        fileName - for input file
        Returns:
        result, null if unsuccessful
        See Also:
        MeshLab, Wikipedia: MeshLab
      • exportModelToFile

        public static boolean exportModelToFile​(X3DObject modelToExport,
                                                java.lang.String path,
                                                java.lang.String fileName)
        TODO: Use MeshLab to export geometry to STL
        Parameters:
        modelToExport - X3D model of interest
        path - directory path for X3D model of interest
        fileName - file name for X3D model of interest
        Returns:
        plain-text STL file
        See Also:
        STL (file format), MeshLab, Wikipedia: MeshLab
      • exportSTLtoFile

        public static boolean exportSTLtoFile​(X3DObject modelToExport,
                                              java.lang.String path,
                                              java.lang.String fileName)
        TODO: Use MeshLab to export geometry to file
        Parameters:
        modelToExport - X3D model of interest
        path - directory path to file of interest
        fileName - for output file
        Returns:
        whether successful
        See Also:
        STL (file format), MeshLab, Wikipedia: MeshLab
      • getMeshLabAnalytics

        public static java.lang.String getMeshLabAnalytics​(X3DObject modelOfInterest)
        TODO: Get MeshLab metrics for X3D model of interest.
        Parameters:
        modelOfInterest - X3D model to analyze
        Returns:
        MeshLab output
        See Also:
        STL (file format), MeshLab, Wikipedia: MeshLab
      • getMeshLabAnalyticsX3dMetadataSet

        public static MetadataSetObject getMeshLabAnalyticsX3dMetadataSet​(X3DObject modelOfInterest)
        TODO: Get MeshLab metrics as MetadataSet object.
        Parameters:
        modelOfInterest - X3D model to analyze
        Returns:
        MeshLab output
        See Also:
        MeshLab, Wikipedia: MeshLab
      • getMeshLabVersion

        public static java.lang.String getMeshLabVersion()
        Get MeshLab version.
        Returns:
        MeshLab version.
        See Also:
        MeshLab, Wikipedia: MeshLab
      • hasMeshLab

        public static boolean hasMeshLab()
        Determine if MeshLab is locally available.
        Returns:
        whether MeshLab is found.
        See Also:
        MeshLab, Wikipedia: MeshLab
      • getPriorMeshLabTraceLogFilePath

        public static java.lang.String getPriorMeshLabTraceLogFilePath()
        Get name of MeshLab trace log file produced during most recent MeshLab operation.
        Returns:
        name of most recent MeshLab trace log file
      • setPriorMeshLabTraceLogFilePath

        public static void setPriorMeshLabTraceLogFilePath​(java.lang.String value)
        Set name of MeshLab trace log file produced during most recent MeshLab operation.
        Parameters:
        value - new path and file name for meshLabTraceLogFilePath
      • getPriorMeshLabTraceLogContents

        public static java.lang.String getPriorMeshLabTraceLogContents()
        Get contents of MeshLab trace log file produced during most recent MeshLab operation.
        Returns:
        contents of most recent MeshLab trace log file
      • initialize

        public static final void initialize()
        Initialize this MeshLabLauncher instance to default values.
      • main

        public static void main​(java.lang.String[] args)
        Default main() method provided for test and debugging purposes, invoking run() method.
        Parameters:
        args - the command line arguments
        See Also:
        run(String[]), X3DObject.handleArguments(String[])
      • run

        public static void run​(java.lang.String arguments)
        Utility run() method provided for test and debugging purposes, allowing invocation with a single String (rather than a String[] array). When invoked without parameters then reports results of validate() self-checks to system output.
        Parameters:
        arguments - the command line arguments
        See Also:
        run(String[])
      • run

        public static void run​(java.lang.String[] args)
        Default run() method provided for test and debugging purposes, first initializing ConfigurationProperties then reading properties file (if any) and processing arguments. When invoked without parameters then reports results of validate() self-checks to system output.
        Parameters:
        args - the command line arguments
        See Also:
        main(String[]), ConfigurationProperties, X3DObject.handleArguments(String[])