From 5094e42d51487641fa99ed97bd058c9783277c54 Mon Sep 17 00:00:00 2001 From: cignoni Date: Tue, 17 Feb 2004 23:26:01 +0000 Subject: [PATCH] Initial commit --- docs/StyleGuide.html | 112 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 docs/StyleGuide.html diff --git a/docs/StyleGuide.html b/docs/StyleGuide.html new file mode 100644 index 00000000..b5cf0b5c --- /dev/null +++ b/docs/StyleGuide.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + +

VCG Library Coding Guide

+

Naming Rules

+

Class names with first +letter Uppercase and internal uppercase to separate compound words.

+

Function members of +classes follow the same rule.

+

Example:

+


Point3f
{
public:
ScalarType +&V(const int i);
}

+


+

+

Public Variable members +has the first letter lowercase and internal uppercase to separate +compound words.

+

Example:

+


+

+

Private Variable members +has an underscore as first char and the first letter lowercase and +internal uppercase to separate compound words.

+

Example:

+


Point3f
{
private:
+ScalarType _v[3];
}

+


+

+

Class Template Arguments all capitalized and with +names remembering where they have been defined.

+

TypeDefs used for templated Class +arguments just like Class Names, but ending with “Type”

+

Example:

+


Point3f::ScalarType
+

+

Header Files

+

Header filenames and folders are always +fully lower case. Compound names are separated by '_'.

+

Example:

+

#include<vcg/space/point3.h>

+

Each include file +must begin with the standard legal disclamier/license intestation and +report in the first line of history the $LOG$ cvs string. +

+

The following +automatically ge\nerated history can be, from time to time, +compressed/shortened. +

+

Each file of the library has to include all the files that it +requires. A include file should relies on the files included by its +include files. Example: in vcg/space/box3.h:

+


+

+

#include<vcg/math/base.h> // not +necessary because included by point3.h

+

#include<vcg/space/point3.h> +

+


+

+

In Class definitions place all the +prototypes all together before the inline or templated +implementations.

+


+

+

Editing Rules

+

Tabs are equivalent to two spaces. +

+

There are no strict rules for the +placement of '{' or indenting.

+

Constructors and casting

+

All basic classes (point3, box3 ecc) +must have null constructors. Non null constructors can be added in +debug versions.

+

Implicit casting is disallowed. Write a +member Import function for casting from different integral types and +a static Construct to build an object from different a integral type.

+


+

+

Example:

+


Point3f +pf(1.0f,0.0f,0.0f);
Point3d +pd=Point3f::Construct(pf);
pf.Import(pd);

+ + \ No newline at end of file