wiki:MindSeer_Developer_Documentation

Version 1 (modified by trac, 12 years ago) (diff)

--

Developer Documentation

This page is currently very sparse, and likely will be for quite a while

Javadoc

MindSeer JavaDoc The Javadoc will often lag the released version and sometimes the comments are fairly sparse.

Compiling

The easiest way to compile MindSeer is to use ApacheAnt?. All dependencies must be in the lib/ directory. There are many build targets, a summary of the most common ones follows:

  • compile - clean any build and compile the files
  • help - compile the help.jar file. This is needed in your class path to access help.
  • makeStandalone - make the standalone jar file (MindSeer.jar).
  • makeClientServer - make the jar files for the client and server (MindSeer-client.jar and MindSeer-server.jar).
  • deploy - make all jar files (MindSeer.jar, MindSeer-client.jar and MindSeer-server.jar)
  • matfile - compile just the code to load matlab files and put it in matfile.jar
  • nifti - compile the code needed to load nifti files and put it in nifti.jar

IDE

With Java 1.5, it is much easier to integrate into an IDE.

  1. Make sure that the source, compiler and system libraries point to JDK 1.5+ (with Java3D installed).
  2. You need to make sure to exclude some files. The convention we are using for system specific files is to prepend the name with the system (Mac, Linux and Win). Currently, only Mac has a system specific file, so make sure to exclude **/Mac*.java.
  3. Run the help target in ant. This will generate the help files.
  4. Setup the build path to use netcdf, fastutil, jnlp.jar and help.jar (in Eclipse, go to Project>Properties>Java Build Path>Libraries)

Assertions

  • Currently there are assertions in the shwing package. These ensure the proper thread, but will fail in Client/Server? mode. -ea:edu.washington.biostr.sig.brainj3d.shwing... to enable just these assertions and -da:edu.washington.biostr.sig.brainj3d.shwing... to disable just these assertions
  • There are many other assertions spread around, to enable these use -ea. On the server make sure to disable shwing assertions.

Plugins

Graphical Diagram

  • Plugin File An XML descriptor file
  • Client plugin The client supports new menus and popups
  • FileType plugin includes decoders, encoders and Data plugins
  • View plugin A View provides a new window type for visualization, i.e. 3D or Slice View
  • DataView plugin A Data View encapsulates a Data instance for visualization in a given View

File Formats

MindSeer supports various common file formats. These formats were chosen to either maximize compatibility or when we need to make a custom format, XML was used. MindSeer will read files the are gzipped for all formats (add ".gz" to the extension).

Volume File Formats

  • Analyze 7.5 (with SPM extensions)
  • NIFTI (will eventually be the default format)
  • Minc

Model File Formats

  • MAT file (version 4 or 5) with 2 data matrices (faces and vertices)
  • Wavefront OBJ (planned)
  • Geomview (OFF format is supported and we plan support for MESH format.) A modified OFF format is the default output format, Model Format).

Image File Formats

  • MindSeer supports all image file formats that are in java.imageio.ImageIO. These include the built in formats (jpg, gif(read only), png, bmp, wbmp) and any formats that were installed separately.
  • To add TIFF support go to ImageIO Download and download the latest ImageIO package. Follow the instructions.

Other File Formats

  • Workspace
  • Map file (XML, default map format)
  • Legacy Map File (SKANDHA Brain Mapper)