2004-02-09 01:00:48 +01:00
|
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
|
|
<HTML>
|
|
|
|
<HEAD>
|
|
|
|
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
|
|
|
|
<TITLE></TITLE>
|
|
|
|
<META NAME="GENERATOR" CONTENT="OpenOffice.org 1.1.0 (Win32)">
|
|
|
|
<META NAME="CREATED" CONTENT="20040209;363169">
|
|
|
|
<META NAME="CHANGEDBY" CONTENT="Paolo Cignoni">
|
2004-02-13 02:10:35 +01:00
|
|
|
<META NAME="CHANGED" CONTENT="20040213;2134025">
|
2004-02-09 01:00:48 +01:00
|
|
|
<STYLE>
|
|
|
|
<!--
|
|
|
|
@page { size: 21.59cm 27.94cm; margin: 2cm }
|
|
|
|
P { margin-bottom: 0.21cm }
|
|
|
|
H1 { margin-bottom: 0.21cm }
|
|
|
|
H1.western { font-family: "Arial", sans-serif; font-size: 16pt }
|
|
|
|
H1.cjk { font-family: "MS Mincho"; font-size: 16pt }
|
|
|
|
H1.ctl { font-family: "Tahoma"; font-size: 16pt }
|
|
|
|
H2 { margin-bottom: 0.21cm }
|
|
|
|
H2.western { font-family: "Arial", sans-serif; font-size: 14pt; font-style: italic }
|
|
|
|
H2.cjk { font-family: "MS Mincho"; font-size: 14pt; font-style: italic }
|
2004-02-12 18:55:45 +01:00
|
|
|
H2.ctl { font-family: "Arial Unicode MS"; font-size: 14pt; font-style: italic }
|
|
|
|
P.code-western { text-indent: 1.01cm; margin-bottom: 0cm; font-family: "Courier New", monospace; font-size: 9pt }
|
|
|
|
P.code-cjk { text-indent: 1.01cm; margin-bottom: 0cm }
|
|
|
|
P.code-ctl { text-indent: 1.01cm; margin-bottom: 0cm }
|
2004-02-09 01:00:48 +01:00
|
|
|
-->
|
|
|
|
</STYLE>
|
|
|
|
</HEAD>
|
|
|
|
<BODY LANG="en-US" DIR="LTR">
|
|
|
|
<H1 CLASS="western">VCG Library Coding Guide</H1>
|
|
|
|
<H2 CLASS="western">Naming Rules</H2>
|
|
|
|
<P STYLE="margin-bottom: 0cm"><B><I>Class</I></B> names with first
|
|
|
|
letter Uppercase and internal uppercase to separate compound words.</P>
|
|
|
|
<P STYLE="margin-bottom: 0cm"><B><I>Function members</I></B> of
|
|
|
|
classes follow the same rule.</P>
|
2004-02-12 18:55:45 +01:00
|
|
|
<P STYLE="margin-bottom: 0cm">Example:</P>
|
|
|
|
<P CLASS="code-western">Point3f
|
|
|
|
</P>
|
|
|
|
<P CLASS="code-western">{</P>
|
|
|
|
<P CLASS="code-western"> public:</P>
|
|
|
|
<P CLASS="code-western"> ScalarType &V(const int i);</P>
|
|
|
|
<P CLASS="code-western">}</P>
|
2004-02-09 01:00:48 +01:00
|
|
|
<P STYLE="margin-bottom: 0cm"><B><I>Public Variable members</I></B>
|
|
|
|
has the first letter lowercase and internal uppercase to separate
|
|
|
|
compound words.</P>
|
2004-02-12 18:55:45 +01:00
|
|
|
<P STYLE="margin-bottom: 0cm">Example:</P>
|
|
|
|
<P STYLE="margin-bottom: 0cm"><BR>
|
|
|
|
</P>
|
2004-02-09 01:00:48 +01:00
|
|
|
<P STYLE="margin-bottom: 0cm"><B><I>Private Variable members</I></B>
|
|
|
|
has an underscore as first char and the first letter lowercase and
|
|
|
|
internal uppercase to separate compound words.</P>
|
2004-02-12 18:55:45 +01:00
|
|
|
<P STYLE="margin-bottom: 0cm">Example:</P>
|
|
|
|
<P CLASS="code-western">Point3f
|
|
|
|
</P>
|
|
|
|
<P CLASS="code-western">{</P>
|
|
|
|
<P CLASS="code-western"> private:</P>
|
|
|
|
<P CLASS="code-western"> ScalarType _v[3];</P>
|
|
|
|
<P CLASS="code-western">}</P>
|
2004-02-09 01:00:48 +01:00
|
|
|
<P STYLE="margin-bottom: 0cm"><B><I>Class Template Arguments</I></B>
|
|
|
|
all capitalized and with names remembering where they have been
|
|
|
|
defined.</P>
|
2004-02-12 18:55:45 +01:00
|
|
|
<P STYLE="margin-bottom: 0cm">TypeDefs used for templated Class
|
|
|
|
arguments just like Class Names, but ending with “Type”</P>
|
|
|
|
<P STYLE="margin-bottom: 0cm">Example:</P>
|
|
|
|
<P CLASS="code-western"><FONT SIZE=2><FONT FACE="Courier New, sans-serif">Point3f::ScalarType</FONT></FONT>
|
|
|
|
</P>
|
2004-02-09 01:00:48 +01:00
|
|
|
<H2 CLASS="western">Header Files</H2>
|
|
|
|
<P STYLE="margin-bottom: 0cm">Each file of the library has to include
|
|
|
|
all the files that it requires.</P>
|
|
|
|
<P STYLE="margin-bottom: 0cm">Header filenames and folders are always
|
|
|
|
fully lower case. Compound names are separated by '_'.</P>
|
|
|
|
<P STYLE="margin-bottom: 0cm">In Class definitions place prototypes
|
2004-02-13 02:10:35 +01:00
|
|
|
all <SPAN LANG="en-US">together</SPAN> before the inline or templated
|
|
|
|
<SPAN LANG="en-US">implementations.</SPAN></P>
|
2004-02-12 18:55:45 +01:00
|
|
|
<P STYLE="margin-bottom: 0cm">Example:</P>
|
|
|
|
<P CLASS="code-western"><FONT SIZE=2><FONT FACE="Courier New, sans-serif">#include<vcg/space/point3.h></FONT></FONT>
|
|
|
|
</P>
|
2004-02-09 01:00:48 +01:00
|
|
|
<H2 CLASS="western">Editing Rules</H2>
|
|
|
|
<P STYLE="margin-bottom: 0cm">Tabs are equivalent to two spaces.
|
|
|
|
</P>
|
|
|
|
<P STYLE="margin-bottom: 0cm">There are no strict rules for the
|
2004-02-13 02:10:35 +01:00
|
|
|
<SPAN LANG="en-US">placement</SPAN> of '{' or indenting.</P>
|
|
|
|
<H2 CLASS="western">Constructors and casting</H2>
|
|
|
|
<P STYLE="margin-bottom: 0cm">All basic classes (point3, box3 ecc)
|
|
|
|
must have null constructors. Non null constructors can be added in
|
|
|
|
debug versions.</P>
|
|
|
|
<P STYLE="margin-bottom: 0cm">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.</P>
|
2004-02-09 01:00:48 +01:00
|
|
|
<P STYLE="margin-bottom: 0cm"><BR>
|
|
|
|
</P>
|
2004-02-13 02:10:35 +01:00
|
|
|
<P STYLE="margin-bottom: 0cm">Example:</P>
|
|
|
|
<P CLASS="code-western">Point3f pf(1.0f,0.0f,0.0f);
|
|
|
|
</P>
|
|
|
|
<P CLASS="code-western">Point3d pd=Point3f::Construct(pf);</P>
|
|
|
|
<P CLASS="code-western">pf.Import(pd);</P>
|
|
|
|
<P STYLE="margin-bottom: 0cm">
|
|
|
|
</P>
|
2004-02-09 01:00:48 +01:00
|
|
|
</BODY>
|
|
|
|
</HTML>
|