diff --git a/docs/Doxygen/allocation.dxy b/docs/Doxygen/allocation.dxy index 2a601332..3a316f74 100644 --- a/docs/Doxygen/allocation.dxy +++ b/docs/Doxygen/allocation.dxy @@ -1,4 +1,4 @@ -/** \page allocation +/** \page allocation Allocating and DeAllocating mesh elements Creating elements ================= To create a simple single triangle mesh or to add elements to an existing mesh you should use the AddVertices and AddFaces functions, elements are added at the end of the mesh. These functions returns a pointer to the first allocated element. diff --git a/docs/Doxygen/doxyfile b/docs/Doxygen/doxyfile index 41c3b8c2..2bcdcaf6 100644 --- a/docs/Doxygen/doxyfile +++ b/docs/Doxygen/doxyfile @@ -668,7 +668,9 @@ WARN_LOGFILE = INPUT = . \ ../../vcg/complex/algorithms/update \ ../../apps/sample/trimesh_base \ - ../../apps/sample/trimesh_attribute + ../../apps/sample/trimesh_attribute \ + ../../apps/sample/trimesh_smooth \ + ../../apps/sample/trimesh_refine # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is @@ -733,7 +735,7 @@ EXCLUDE_SYMBOLS = # directories that contain example code fragments that are included (see # the \include command). -EXAMPLE_PATH = ../../apps/sample/trimesh_base +EXAMPLE_PATH = ../../apps/sample/ # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp @@ -747,7 +749,7 @@ EXAMPLE_PATTERNS = # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. -EXAMPLE_RECURSIVE = NO +EXAMPLE_RECURSIVE = YES # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see @@ -904,7 +906,7 @@ HTML_HEADER = # each generated HTML page. If it is left blank doxygen will generate a # standard footer. -HTML_FOOTER = footer.html +HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to @@ -923,7 +925,7 @@ HTML_STYLESHEET = # robust against future updates. Doxygen will copy the style sheet file to # the output directory. -HTML_EXTRA_STYLESHEET = +HTML_EXTRA_STYLESHEET = vcg.css # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note diff --git a/docs/Doxygen/flags.dxy b/docs/Doxygen/flags.dxy new file mode 100644 index 00000000..c22962ab --- /dev/null +++ b/docs/Doxygen/flags.dxy @@ -0,0 +1,56 @@ +/** \page flags Bit Flags + +For each simplex of the mesh we have a component called \c BitFlags that store a fixed size vector of 32 bits that are used for a variety of needs. +Related classes to manage these flags:
+- \ref vcg::tri::UpdateFlags (defined in flag.h) +- \ref vcg::tri::UpdateSelection (defined in selection.h) + +Delete Bit +---------- +\code +IsD(), +ClearD(); // deprecated +SetD() // deprecated +\endcode +This bit flag is the most used one; see \ref allocation page for more detail on its use. +\warning you should \b never directly nvoke \c SetD() or \c ClearD(), but you should use the function described in the vcg::tri::Allocator. + +Border Bit +---------- +\code +IsB(), +ClearB(), +SetB() +\endcode +To store the fact that a vertex or a face is on the boundary. These bits are not computed by default. +They can be computed with or without the topology (obviously if you FF topology the computation of these bit is faster).
+The rationale of these bits is that there are a lot of algorithms that need only boundary information for correctly working +so computing it once is sufficient without needing to burden everything with the whole FF topology structure. + + +Selection bit +------------- +IsS(), ClearS(), SetS() + +Visiting bit +------------ + +IsV(), ClearV(), SetV() Useful bit for any algorithm. You should not rely on the state of this bit or store anything persistent here. Any algorithm can clear it and use it for its own local purposes. use tri::UpdateFlags::VertexClearV(yourMesh) to clear all bits. + +User bits +--------- + +If you want to allocate some private bits among the one stored with your mesh elements you can do it by mean of the NewBitFlag() function that returns a mask that can be used for setting, clearing and testing elements against that particular bit. The following example allocate three new bits for each face and clear them. + +int e0bit = MyFace::NewBitFlag(); +int e1bit = MyFace::NewBitFlag(); +int e2bit = MyFace::NewBitFlag(); +int ebit[3] = {e0bit,e1bit,e2bit}; + +for(MyMesh::FaceIterator fi=m.face.begin();fi!=m.face.end();++fi) + for(int i=0;i<3;++i) + (*fi).ClearUserBit(ebit[i]); +The task of clearing a given bit of all the faces (vertexes) of a mesh can be done with +tri::UpdateFlags::FaceClear(yourMesh,e0bit|e1bit|e2bit); +to clear all bits. +*/ diff --git a/docs/Doxygen/groups.dxy b/docs/Doxygen/groups.dxy index 0fb3dd6f..25fb25a0 100644 --- a/docs/Doxygen/groups.dxy +++ b/docs/Doxygen/groups.dxy @@ -44,6 +44,10 @@ This module contains the documentation for the types and the functions used for //@} /** \defgroup code_sample Code Examples -This module contains a number of small examples to explain the library features +\brief This module contains a number of small examples to explain the library features + +All the example here reported are located under vcglib/apps/sample +Each sample has a minimal '.pro' file + */ diff --git a/docs/Doxygen/index.dxy b/docs/Doxygen/index.dxy index a790e180..b5dfc1f8 100644 --- a/docs/Doxygen/index.dxy +++ b/docs/Doxygen/index.dxy @@ -28,12 +28,13 @@ Documentation Start from the following pages for basic concepts and needs. - \subpage install "Installing the VCG Library" - \subpage basic_concepts "Basic Concepts" +- \subpage flags "Bit Flags on mesh elements" - \subpage adjacency "Adjacency and Topology" - \subpage allocation "Creating and destroying elements" - \subpage attributes "Adding user defined attributes to mesh elements" - \subpage fileformat "Loading and saving meshes" - \subpage shot "Camera and shot abstraction for managing views" -- \subpage examples "Short Examples showing various features of the lib" +- \ref code_sample "Short Examples showing various features of the lib" Notable Applications ------- diff --git a/docs/Doxygen/vcg.css b/docs/Doxygen/vcg.css index 2ef1dc3d..294109c5 100644 --- a/docs/Doxygen/vcg.css +++ b/docs/Doxygen/vcg.css @@ -1,225 +1,3 @@ -H1 { - text-align: center; - font-family: Geneva, Arial, Helvetica, sans-serif; -} -H2 { - font-family: Geneva, Arial, Helvetica, sans-serif; -} -H3 { - font-family: Geneva, Arial, Helvetica, sans-serif; -} -CAPTION { font-weight: bold } -DIV.qindex { - font-family: Geneva, Arial, Helvetica, sans-serif; - width: 100%; - background-color: #eeeeff; - border: 1px solid #B0B0B0; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 120%; -} -A.qindex { - text-decoration: none; - font-weight: bold; - color: #1A419D; - padding: 2px; -} -A.qindex:visited { - text-decoration: none; - font-weight: bold; - color: #1A419D - padding: 2px; -} -A.qindex:hover { - text-decoration: none; - background-color: #ddddff; - padding: 2px; -} -A.qindexHL { - text-decoration: none; - font-weight: bold; - background-color: #6666cc; - color: #ffffff; - padding: 2px 6px; - border: 1px double #9295C2; -} -A.qindexHL:hover { - text-decoration: none; - background-color: #6666cc; - color: #ffffff; - padding: 2px 6px; -} -A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } -A.el { text-decoration: none; font-weight: bold; font-size: 100%; -} -A.elRef { font-weight: bold } -A.code { text-decoration: none; font-weight: normal; color: #1A419D} -A.codeRef { font-weight: normal; color: #1A419D} -A:hover { text-decoration: none; background-color: #f2f2ff } -DL.el { margin-left: -1cm } -PRE.fragment { - border: 1px solid #CCCCCC; - background-color: #f5f5f5; - margin-top: 4px; - margin-bottom: 4px; - margin-left: 2px; - margin-right: 8px; - padding-left: 6px; - padding-right: 6px; - padding-top: 4px; - padding-bottom: 4px; -} -DIV.fragment { - border: 1px solid #CCCCCC; - background-color: #f5f5f5; - padding: 6px; -} -DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } -TD.md { background-color: #F4F4FB; font-weight: bold; } -TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; } -TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; } -DIV.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold; - font-family: Geneva, Arial, Helvetica, sans-serif; -} -DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller } -BODY { - font-family: Geneva, Arial, Helvetica, sans-serif; - font-size: 85%; - background: white; - color: black; - margin-right: 20px; - margin-left: 20px; -} -TD.indexkey { - background-color: #eeeeff; - font-weight: bold; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TD.indexvalue { - background-color: #eeeeff; - font-style: italic; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TR.memlist { - background-color: #f0f0f0; -} -P.formulaDsp { text-align: center; } -IMG.formulaDsp { } -IMG.formulaInl { vertical-align: middle; } -SPAN.keyword { color: #008000 } -SPAN.keywordtype { color: #604020 } -SPAN.keywordflow { color: #e08000 } -SPAN.comment { color: #800000 } -SPAN.preprocessor { color: #806020 } -SPAN.stringliteral { color: #002080 } -SPAN.charliteral { color: #008080 } -.mdTable { - border: 1px solid #868686; - background-color: #F4F4FB; -} -.mdRow { - padding: 8px 10px; -} -.mdescLeft { - font-size: smaller; - font-style: italic; - background-color: #FAFAFA; - padding-left: 8px; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.mdescRight { - font-size: smaller; - font-style: italic; - background-color: #FAFAFA; - padding-left: 4px; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; - padding-bottom: 0px; - padding-right: 8px; -} -.memItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-style: solid; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-family: Geneva, Arial, Helvetica, sans-serif; - font-size: 12px; -} -.memItemRight { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-style: solid; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-family: Geneva, Arial, Helvetica, sans-serif; - font-size: 13px; -} -.search { color: #003399; - font-weight: bold; -} -FORM.search { - margin-bottom: 0px; - margin-top: 0px; -} -INPUT.search { font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #eeeeff; -} -TD.tiny { font-size: 75%; -} -a { - color: #252E78; -} -a:visited { - color: #3D2185; -} +#titlearea > table, div.contents, div.header, .tablist { margin-left: 40px } +div.contents {width: 1024px} +#nav-path > ul { padding-left: 40px; }