Commit a9f4169b authored by Mike Kremer's avatar Mike Kremer
Browse files

Added preprocessor directives such that doxygen correctly parses the vector template class.

git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@336 fdac6126-5c0c-442c-9429-916003d36597
parent 29e91a90
...@@ -46,6 +46,12 @@ ...@@ -46,6 +46,12 @@
// //
//============================================================================= //=============================================================================
// Don't parse this header file with doxygen since
// for some reason (obviously due to a bug in doxygen,
// bugreport: https://bugzilla.gnome.org/show_bug.cgi?id=629182)
// macro expansion and preprocessor defines
// don't work properly.
#ifndef DOXYGEN
#ifndef OPENMESH_VECTOR_HH #ifndef OPENMESH_VECTOR_HH
#define OPENMESH_VECTOR_HH #define OPENMESH_VECTOR_HH
...@@ -184,8 +190,6 @@ template <> struct VectorDataT<float, 4> ...@@ -184,8 +190,6 @@ template <> struct VectorDataT<float, 4>
//== FULL TEMPLATE SPECIALIZATIONS ============================================ //== FULL TEMPLATE SPECIALIZATIONS ============================================
#else #else
# ifndef DOXY_IGNORE_THIS
/// cross product for Vec3f /// cross product for Vec3f
template<> template<>
inline VectorT<float,3> inline VectorT<float,3>
...@@ -209,8 +213,6 @@ VectorT<double,3>::operator%(const VectorT<double,3>& _rhs) const ...@@ -209,8 +213,6 @@ VectorT<double,3>::operator%(const VectorT<double,3>& _rhs) const
values_[0]*_rhs.values_[1]-values_[1]*_rhs.values_[0]); values_[0]*_rhs.values_[1]-values_[1]*_rhs.values_[0]);
} }
# endif // DOXY_IGNORE_THIS
#endif #endif
...@@ -339,3 +341,4 @@ typedef VectorT<double,6> Vec6d; ...@@ -339,3 +341,4 @@ typedef VectorT<double,6> Vec6d;
//============================================================================= //=============================================================================
#endif // OPENMESH_VECTOR_HH defined #endif // OPENMESH_VECTOR_HH defined
//============================================================================= //=============================================================================
#endif DOXYGEN
...@@ -39,6 +39,22 @@ ...@@ -39,6 +39,22 @@
* * * *
\*===========================================================================*/ \*===========================================================================*/
// Set template keywords and class names properly when
// parsing with doxygen. This only seems to work this way since
// the scope of preprocessor defines is limited to one file in doxy.
#ifdef DOXYGEN
// Only used for correct doxygen parsing
#define OPENMESH_VECTOR_HH
#define DIM N
#define TEMPLATE_HEADER template <typename Scalar, int N>
#define CLASSNAME VectorT
#define DERIVED VectorDataT<Scalar,N>
#define unroll(expr) for (int i=0; i<N; ++i) expr(i)
#endif
#if defined( OPENMESH_VECTOR_HH ) #if defined( OPENMESH_VECTOR_HH )
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment