/** @page standards Coding Standards and Conventions
This appendix sets out the basic coding standards and conventions used
in Gazebo and libgazebo. Developers are urged to pay attention to
these standards, if for no other reason than to avoid annoying other
developers.
@section standards_gazebo Gazebo
Gazebo is written in a subset of C++ ("C with classes" as Brian put it
recently). This means that use of more advanced C++ "features"
(templates, STL, run-time typing, multiple inheritance, etc.) is
strongly discouraged.
@par Naming Conventions
- Source files are camel-capped; e.g., Pioneer2AT.cc.
- C++ header files are suffixed with .hh, C++ source files are
suffixed with .cc; e.g., Model.hh, Model.cc.
- Directory names are lower case, with the exception of model
directories, which are camel-capped.
@par Coding Conventions
- Class and function names are camel-capped with a leading
upper-case character; e.g. BoxGeom, SetGravity().
- Variable names are camel-capped with a leading lower-case character,
and do not include any type encoding (no Hungarian);
e.g. myVariable.
- Class variables and methods are always accessed explicitly:
e.g. this->MyMethod() and this->myVariable.
- Standard indentation is two spaces (no tab characters).
- Matching braces are aligned, e.g.:
@verbatim
if (condition)
{
do_something();
do_something_else();
}
@endverbatim
@section standards_libgazebo libgazebo
For maximum compatibility and portability, libgazebo is written in C.
@par File Naming Conventions
- Source files are lower-case with underscores; e.g., gz_laser.c.
- Header files are suffixed with .h, C source files are
suffixed with .c; e.g., gazebo.h, libgazebo.c.
- Source files for interfaces are prefixed by gz_; e.g.,
gz_position.c.
@par Coding Conventions
- Public functions (i.e., those included in gazebo.h are prefixed
by gz_; e.g., gz_laser_alloc().
- Function names are lower-case with underscores; e.g., my_function().
- Variable names are lower-case with underscores, and do not include
any type encoding (i.e., no Hungarian); e.g., my_variable.
- Standard indentation is two spaces (no tab characters).
- Matching braces are aligned, e.g.:
@verbatim
if (condition)
{
do_something();
do_something_else();
}
@endverbatim
*/