Development

Configure the development environment

Documentation

The documentation is generated by Sphinx_. Please refer to sphinx’ documenation

Some parts of the documenation is generated. The Python API documenation is done with autodoc from sphinx. create_docs.py` generates the documenation of Elements and Operators and rips the MSMLDOC comments out of the C++ files.

Useful information

If question how to write stable and reuseable Python code refer to:

for C++ refer to:

For helping PyCharm with type hints you can look at:

We provide for configuration for astyle <http://astyle.sourceforge.net/>_ configuration. Please use this for code formation before commits.

Style Guide

General

  1. You should put the preamble in front of every source file.

    The Medical Simulation Markup Language (MSML) - Simplifying the biomechanical modeling workflow
    
    MSML has been developed in the framework of 'SFB TRR 125 Cognition-Guided Surgery'
    
    If you use this software in academic work, please cite the paper: 
      S. Suwelack, M. Stoll, S. Schalck, N.Schoch, R. Dillmann, R. Bendl, V. Heuveline and S. Speidel,
      The Medical Simulation Markup Language (MSML) - Simplifying the biomechanical modeling workflow,
      Medicine Meets Virtual Reality (MMVR) 2014
    
    Copyright (C) 2013-2014 see Authors.txt
    
    If you have any questions please feel free to contact us at suwelack@kit.edu
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
  2. Every source file should have the information about authors and creation date.

    Python:__author__ and __date__ in each file.
    C++:Authorship should given in a comment.
  3. Use code formatting.

    C++:you can use astyle with the given config.
    Python:the default formatting from Python is good enough.
  4. Use pylint for measuring the code quality.

  5. Test new commits....

Todo

More rules. Rules for committing after final release.