Style
Python Code
Use the compas style guide from the offcial documentation documentation.
C++ Code
Functions:
snake_case
Variables (local and public):
snake_case
Private members:
_snake_case
(prefix with _)Static members:
s_snake_case
(prefix with s and _)Constants:
SNAKE_UPPER_CASE
Class/Struct names:
UpperCamelCase
Namespaces
// Do not use "using namespace std", specify namespace explicitly
std::vector<double> points;
Functions
// Next line bracket style
void compute_boolean_union()
{
/* content */
}
Structures
// Structure name uses UpperCamelCase
struct MeshData
{
// Structure attribute uses snake_case
const char* file_name;
};
Classes
// Class name uses UpperCamelCase
class BooleanSolver
{
public:
BooleanSolver(const double& tolerance);
virtual ~BooleanSolver();
// Member functions use snake_case
void compute_intersection()
{
// Local variable uses snake_case
double tolerance = 0.001;
}
// Field indicator to separate functions and attributes
public:
int result_count; // Public member uses snake_case
private:
void validate_mesh(); // Private function uses snake_case
double _tolerance; // Private member uses _snake_case
static int s_meshes; // Static member uses s_snake_case
const int MAX_COUNT = 100; // Constant uses SNAKE_UPPER_CASE
};
Docstrings
Use Doxygen-style comments with the following format:
Functions and Methods
/**
* @brief Short description of function
* @param[in] param1 Description of input parameter
* @param[out] param2 Description of output parameter
* @return Description of return value
* @throws Description of potential exceptions
*/
double compute_intersection(const Mesh& mesh1, Mesh& result);
Classes
/**
* @brief Short description of class
* @details Longer description if needed
*/
class BooleanSolver {
public:
/**
* @brief Constructor description
* @param tolerance Mesh tolerance value
*/
BooleanSolver(double tolerance);
};
Member Variables
class BooleanSolver {
private:
double _tolerance; //!< Brief description of member variable
int s_meshes; //!< Use //!< for single-line member documentation
};