package vtk;import java.io.File;/*** Enum used to load native library more easily. If you don't want to set the* specific environment variable you can provide the path of the directory that* contains the VTK library through a Java Property. Like in the following* command line:** > java -cp vtk.jar -Dvtk.lib.dir=.../vtk-libs vtk.sample.SimpleVTK** The directory .../vtk-libs must contain the so/dll/dylib + the jnilib files** @author sebastien jourdain - sebastien.jourdain@kitware.com*/public enum vtkNativeLibrary {@VTK_JAVA_NATIVE_LIBRARIES@/*** Try to load all library** @return true if all library have been successfully loaded*/public static boolean LoadAllNativeLibraries() {boolean isEveryThingLoaded = true;for (vtkNativeLibrary lib : values()) {try {if(lib.IsBuilt()) {lib.LoadLibrary();}} catch (UnsatisfiedLinkError e) {isEveryThingLoaded = false;e.printStackTrace();}}return isEveryThingLoaded;}/*** Load the set of given library and trows runtime exception if any given* library failed in the loading process** @param nativeLibraries*/public static void LoadNativeLibraries(vtkNativeLibrary... nativeLibraries) {for (vtkNativeLibrary lib : nativeLibraries) {lib.LoadLibrary();}}/*** Disable the pop-in vtkErrorWindow by writing the error to a log file.* If the provided logFile is null the default "vtkError.txt" file will be* used.** @param logFile*/public static void DisableOutputWindow(File logFile) {if(logFile == null) {logFile = new File("vtkError.txt");}vtkFileOutputWindow outputError = new vtkFileOutputWindow();outputError.SetFileName(logFile.getAbsolutePath());outputError.SetInstance(outputError);}private vtkNativeLibrary(String nativeLibraryName, boolean built) {this.nativeLibraryName = nativeLibraryName;this.loaded = false;this.built = built;}/*** Load the library and throws runtime exception if the library failed in* the loading process*/public void LoadLibrary() throws UnsatisfiedLinkError {if (!loaded) {if (System.getProperty("vtk.lib.dir") != null) {File dir = new File(System.getProperty("vtk.lib.dir"));patchJavaLibraryPath(dir.getAbsolutePath());File libPath = new File(dir, System.mapLibraryName(nativeLibraryName));if (libPath.exists()) {try {Runtime.getRuntime().load(libPath.getAbsolutePath());loaded = true;return;} catch (UnsatisfiedLinkError e) {e.printStackTrace();}}}System.loadLibrary(nativeLibraryName);}loaded = true;}/*** @return true if the library has already been successfully loaded*/public boolean IsLoaded() {return loaded;}/*** @return true if the module was enabled and therefore build*/public boolean IsBuilt() {return built;}/*** @return the library name*/public String GetLibraryName() {return nativeLibraryName;}private static void patchJavaLibraryPath(String vtkLibDir) {if (vtkLibDir != null) {String path_separator = System.getProperty("path.separator");String s = System.getProperty("java.library.path");if (!s.contains(vtkLibDir)) {s = s + path_separator + vtkLibDir;System.setProperty("java.library.path", s);}}}private String nativeLibraryName;private boolean loaded;private boolean built;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。