diff --git a/docs/StyleGuide.html b/docs/StyleGuide.html index b5cf0b5c..a8277ea9 100644 --- a/docs/StyleGuide.html +++ b/docs/StyleGuide.html @@ -1,112 +1,123 @@ - - - - - - - - - - - - -

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 + + + + + + + + +

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 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