Mesh Compression

Mve-2 module repository requirements

Mve-2 is an open system, that makes it easy to create new modules. However, we want to provide some basic functionality using the module library. The modules in the library should follow some basic rules, in order to provide comfortable environment for other users. If you want to submit your module, please do so by e-mailing the module package to This email address is being protected from spambots. You need JavaScript enabled to view it.. Before you submit your module, please make sure that it is created according to following suggestions:

  1. Use defined data structures wherever possible. Check the data structures introduced by the Visualisation, Numerics and Strings libraries and don't use your own ones if it is not absolutely necessary.
  2. Provide a package that complies with the data structure of Mve-2, i.e. put all your files into subdirectories of a directory named Mve2-bin, use following subdirectories:
    • libs - dlls with your modules, xml documentation files
    • maps - your example maps
    • data - data needed by your maps (maps should use relative paths to data, i.e. ../data/myData.dat)
    • mmdoc - batch file that creates chm help for your library and puts it into helps directory
    • helps - additional chm helps (don't put automatically generated documentation here, only but a batch file that creates it into the mmdoc subdir)
    If you're providing source files for your modules, place them into Mve2-src/SomeDir directory, where SomeDir is the name of your project. Please provide a txt file that describes how to compile your source code, or even better, provide a batch file that performs the compilation.
  3. Make sure your module does not perform a computation when it's result is not expected to change since the last run. For such cases, keep the result from the last run and set it as output with the DataSame parameter set to true (i.e. SetOutput("OutputPort", oldOutput, true), don't exit from the Execute method without setting the output at all!)
  4. Make sure you use the ProgressInfo event to inform the user about the progress of your computation wherever necessary (i.e. when the computation takes more than 0.1s)
  5. Provide a non-required input port of the MveString type for all file loaders, that will allow the map to generate the filename. If there is no connection on this port, then use file name specified by some public property.
  6. Provide a Reload boolean property for loader modules that specifies whether or not a file should be reloaded when file name has not been changed since the last run.
  7. For modules that use/add attributes to data structures allow the user to specify the name of attribute to be used (public property string NormalsAttributeName)
  8. Use commenting attributes (PortInfoAttribute, ModuleInfoAttribute etc.).
  9. Use the WriteLog() method to log imporatnt settings and results of your module (see View/ExperimentLog to examine the results).
  10. Use nice icons so that your modules look cool.

Please, take care to carefully test all the maps you are providing with your contribution. The best way to test your module is to use a clean instalation of the latest release of Mve2, installed for example on a virtual PC. Your maps should work when your package is copied over the Mve2-bin directory. Please provide a list of all requrements of your package (external libraries, other non-standard modules used in your example maps etc.).

Thank you for following these rules. If you're in doubt about anything don't hesitate to contact us with your question.