diff --git a/src/Magnum/AbstractTexture.cpp b/src/Magnum/AbstractTexture.cpp index e6fe1e761..35f94797a 100644 --- a/src/Magnum/AbstractTexture.cpp +++ b/src/Magnum/AbstractTexture.cpp @@ -168,7 +168,8 @@ void AbstractTexture::bindImplementationFallback(const GLint firstTextureUnit, c } #ifndef MAGNUM_TARGET_GLES -void AbstractTexture::bindImplementationMulti(const GLint firstTextureUnit, const Containers::ArrayReference textures) { +/** @todoc const Containers::ArrayReference makes Doxygen grumpy */ +void AbstractTexture::bindImplementationMulti(const GLint firstTextureUnit, Containers::ArrayReference textures) { Implementation::TextureState* const textureState = Context::current()->state().texture; /* Create array of IDs and also update bindings in state tracker */ diff --git a/src/Magnum/Attribute.h b/src/Magnum/Attribute.h index 26deca2fc..041d0d131 100644 --- a/src/Magnum/Attribute.h +++ b/src/Magnum/Attribute.h @@ -43,9 +43,9 @@ namespace Implementation { template struct Attribute; } @brief Base class for attribute location and type For use in @ref AbstractShaderProgram subclasses. Template parameter @p location -is vertex attribute location, number between `0` and @ref maxVertexAttributes(). -To ensure compatibility, you should always have vertex attribute with location -`0`. +is vertex attribute location, number between `0` and +@ref AbstractShaderProgram::maxVertexAttributes(). To ensure compatibility, you +should always have vertex attribute with location `0`. Template parameter @p T is the type which is used for shader attribute, e.g. @ref Vector4i for `ivec4`. DataType is type of passed data when adding vertex diff --git a/src/Magnum/Buffer.cpp b/src/Magnum/Buffer.cpp index c992b72b4..7656613ff 100644 --- a/src/Magnum/Buffer.cpp +++ b/src/Magnum/Buffer.cpp @@ -378,7 +378,8 @@ void Buffer::bindImplementationMulti(const Target target, const GLuint firstInde } #endif -void Buffer::bindImplementationFallback(const Target target, const GLuint firstIndex, const Containers::ArrayReference> buffers) { +/** @todoc const Containers::ArrayReference makes Doxygen grumpy */ +void Buffer::bindImplementationFallback(const Target target, const GLuint firstIndex, Containers::ArrayReference> buffers) { for(std::size_t i = 0; i != buffers.size(); ++i) { if(buffers && std::get<0>(buffers[i])) std::get<0>(buffers[i])->bind(target, firstIndex + i, std::get<1>(buffers[i]), std::get<2>(buffers[i])); @@ -387,7 +388,8 @@ void Buffer::bindImplementationFallback(const Target target, const GLuint firstI } #ifndef MAGNUM_TARGET_GLES -void Buffer::bindImplementationMulti(const Target target, const GLuint firstIndex, const Containers::ArrayReference> buffers) { +/** @todoc const Containers::ArrayReference makes Doxygen grumpy */ +void Buffer::bindImplementationMulti(const Target target, const GLuint firstIndex, Containers::ArrayReference> buffers) { /** @todo use ArrayTuple */ Containers::Array ids{buffers ? buffers.size() : 0}; Containers::Array offsetsSizes{buffers ? buffers.size()*2 : 0}; diff --git a/src/Magnum/Buffer.h b/src/Magnum/Buffer.h index 060a6778e..d30d991a3 100644 --- a/src/Magnum/Buffer.h +++ b/src/Magnum/Buffer.h @@ -690,9 +690,10 @@ class MAGNUM_EXPORT Buffer: public AbstractObject { * any buffer is `nullptr`, given indexed target is unbound. The range * of indices must respect limits for given @p target. The offsets must * respect alignment, which is 4 bytes for @ref Target::AtomicCounter - * and implementation-defined for other targets. If @extension{ARB,multi_bind} - * (part of OpenGL 4.4) is not available, the feature is emulated with - * sequence of @ref bind(Target, UnsignedInt, GLintptr, GLsizeiptr) / + * and implementation-defined for other targets. All the buffers must + * have allocated data store. If @extension{ARB,multi_bind} (part of + * OpenGL 4.4) is not available, the feature is emulated with sequence + * of @ref bind(Target, UnsignedInt, GLintptr, GLsizeiptr) / * @ref unbind(Target, UnsignedInt) calls. * @note This function is meant to be used only internally from * @ref AbstractShaderProgram subclasses. See its documentation @@ -717,10 +718,10 @@ class MAGNUM_EXPORT Buffer: public AbstractObject { * Binds first buffer in the list to @p firstIndex, second to * `firstIndex + 1` etc. If any buffer is `nullptr`, given indexed * target is unbound. The range of indices must respect limits for - * given @p target. If @extension{ARB,multi_bind} (part of OpenGL 4.4) - * is not available, the feature is emulated with sequence of - * @ref bind(Target, UnsignedInt) / @ref unbind(Target, UnsignedInt) - * calls. + * given @p target. All the buffers must have allocated data store. If + * @extension{ARB,multi_bind} (part of OpenGL 4.4) is not available, + * the feature is emulated with sequence of @ref bind(Target, UnsignedInt) + * / @ref unbind(Target, UnsignedInt) calls. * @note This function is meant to be used only internally from * @ref AbstractShaderProgram subclasses. See its documentation * for more information. @@ -874,7 +875,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject { * The @p index parameter must respect limits for given @p target. The * @p offset parameter must respect alignment, which is 4 bytes for * @ref Target::AtomicCounter and implementation-defined for other - * targets. + * targets. The buffer must have allocated data store. * @note This function is meant to be used only internally from * @ref AbstractShaderProgram subclasses. See its documentation * for more information. @@ -895,7 +896,8 @@ class MAGNUM_EXPORT Buffer: public AbstractObject { /** * @brief Bind buffer to given binding index * - * The @p index parameter must respect limits for given @p target. + * The @p index parameter must respect limits for given @p target. The + * buffer must have allocated data store. * @note This function is meant to be used only internally from * @ref AbstractShaderProgram subclasses. See its documentation * for more information. @@ -1161,14 +1163,14 @@ class MAGNUM_EXPORT Buffer: public AbstractObject { TargetHint MAGNUM_LOCAL bindSomewhereInternal(TargetHint hint); #ifndef MAGNUM_TARGET_GLES2 - static void MAGNUM_LOCAL bindImplementationFallback(Target target, GLuint first, Containers::ArrayReference buffers); + static void MAGNUM_LOCAL bindImplementationFallback(Target target, GLuint firstIndex, Containers::ArrayReference buffers); #ifndef MAGNUM_TARGET_GLES - static void MAGNUM_LOCAL bindImplementationMulti(Target target, GLuint first, Containers::ArrayReference buffers); + static void MAGNUM_LOCAL bindImplementationMulti(Target target, GLuint firstIndex, Containers::ArrayReference buffers); #endif - static void MAGNUM_LOCAL bindImplementationFallback(Target target, GLuint first, Containers::ArrayReference> buffers); + static void MAGNUM_LOCAL bindImplementationFallback(Target target, GLuint firstIndex, Containers::ArrayReference> buffers); #ifndef MAGNUM_TARGET_GLES - static void MAGNUM_LOCAL bindImplementationMulti(Target target, GLuint first, Containers::ArrayReference> buffers); + static void MAGNUM_LOCAL bindImplementationMulti(Target target, GLuint firstIndex, Containers::ArrayReference> buffers); #endif static void MAGNUM_LOCAL copyImplementationDefault(Buffer& read, Buffer& write, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); diff --git a/src/Magnum/Context.h b/src/Magnum/Context.h index 2d03b4aa9..fdb13deb8 100644 --- a/src/Magnum/Context.h +++ b/src/Magnum/Context.h @@ -352,8 +352,8 @@ class MAGNUM_EXPORT Context { * If no version from the list is supported, returns lowest available * OpenGL version (@ref Version::GL210 for desktop OpenGL, * @ref Version::GLES200 for OpenGL ES). - * @see isExtensionSupported(Version) const - * @todoc Explicit reference when Doxygen can handle const + * @see @link isExtensionSupported(Version) const @endlink + * @todoc Remove workaround when Doxygen can handle const */ Version supportedVersion(std::initializer_list versions) const; @@ -370,10 +370,10 @@ class MAGNUM_EXPORT Context { * } * @endcode * - * @see isExtensionSupported(const Extension&) const, + * @see @link isExtensionSupported(const Extension&) const @endlink, * @ref MAGNUM_ASSERT_EXTENSION_SUPPORTED(), * @ref isExtensionDisabled() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ template bool isExtensionSupported() const { return isExtensionSupported(version()); @@ -402,11 +402,11 @@ class MAGNUM_EXPORT Context { * @brief Whether given extension is supported * * Can be used e.g. for listing extensions available on current - * hardware, but for general usage prefer isExtensionSupported() const, + * hardware, but for general usage prefer @link isExtensionSupported() const @endlink, * as it does most operations in compile time. * @see @ref supportedExtensions(), @ref Extension::extensions(), * @ref MAGNUM_ASSERT_EXTENSION_SUPPORTED() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ bool isExtensionSupported(const Extension& extension) const { return isVersionSupported(_extensionRequiredVersion[extension._index]) && extensionStatus[extension._index]; @@ -438,9 +438,9 @@ class MAGNUM_EXPORT Context { * @brief Whether given extension is disabled * * Can be used e.g. for listing extensions available on current - * hardware, but for general usage prefer isExtensionDisabled() const, + * hardware, but for general usage prefer @link isExtensionDisabled() const @endlink, * as it does most operations in compile time. - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ bool isExtensionDisabled(const Extension& extension) const { return isVersionSupported(extension._requiredVersion) && !isVersionSupported(_extensionRequiredVersion[extension._index]); diff --git a/src/Magnum/Math/Angle.h b/src/Magnum/Math/Angle.h index 17ec3cf50..5343e8fbd 100644 --- a/src/Magnum/Math/Angle.h +++ b/src/Magnum/Math/Angle.h @@ -147,7 +147,7 @@ template class Deg: public Unit { }; #ifndef MAGNUM_TARGET_GLES -/** @relates Deg +/** @relatesalso Deg @brief Double-precision degree value literal Example usage: @@ -155,14 +155,14 @@ Example usage: Double cosine = Math::cos(60.0_deg); // cosine = 0.5 Double cosine = Math::cos(1.047_rad); // cosine = 0.5 @endcode -@see Magnum::operator""_deg(), operator""_degf(), operator""_rad() +@see @link operator""_degf() @endlink, @link operator""_rad() @endlink @requires_gl Only single-precision types are available in OpenGL ES. -@todoc Make references explicit when Doxygen can link to operator"" +@todoc Remove workarounds (2) when Doxygen can handle operator"" */ constexpr Deg operator "" _deg(long double value) { return Deg(value); } #endif -/** @relates Deg +/** @relatesalso Deg @brief Single-precision degree value literal Example usage: @@ -170,8 +170,8 @@ Example usage: Float tangent = Math::tan(60.0_degf); // tangent = 1.732f Float tangent = Math::tan(1.047_radf); // tangent = 1.732f @endcode -@see Magnum::operator""_degf(), operator""_deg(), operator""_radf() -@todoc Make references explicit when Doxygen can link to operator"" +@see @link operator""_deg() @endlink, @link operator""_radf() @endlink +@todoc Remove workarounds (2) when Doxygen can handle operator"" */ constexpr Deg operator "" _degf(long double value) { return Deg(value); } @@ -207,23 +207,23 @@ template class Rad: public Unit { }; #ifndef MAGNUM_TARGET_GLES -/** @relates Rad +/** @relatesalso Rad @brief Double-precision radian value literal -See operator""_rad() for more information. -@see Magnum::operator""_rad(), operator""_radf(), operator""_deg() +See @link operator""_rad() @endlink for more information. +@see @link operator""_radf() @endlink, @link operator""_deg() @endlink @requires_gl Only single-precision types are available in OpenGL ES. -@todoc Make references explicit when Doxygen can link to operator"" +@todoc Remove workarounds (3) when Doxygen can handle operator"" */ constexpr Rad operator "" _rad(long double value) { return Rad(value); } #endif -/** @relates Rad +/** @relatesalso Rad @brief Single-precision radian value literal -See operator""_degf() for more information. -@see Magnum::operator""_radf(), operator""_rad(), operator""_degf() -@todoc Make references explicit when Doxygen can link to operator"" +See @link operator""_degf() @endlink for more information. +@see @link operator""_rad() @endlink, @link operator""_degf() @endlink +@todoc Remove workarounds (3) when Doxygen can handle operator"" */ constexpr Rad operator "" _radf(long double value) { return Rad(value); } diff --git a/src/Magnum/Math/Complex.h b/src/Magnum/Math/Complex.h index 515e76857..6edd026ec 100644 --- a/src/Magnum/Math/Complex.h +++ b/src/Magnum/Math/Complex.h @@ -63,8 +63,8 @@ template class Complex { * @f[ * c_0 \cdot c_1 = a_0 a_1 + b_0 b_1 * @f] - * @see dot() const - * @todoc Explicit reference when Doxygen can handle const + * @see @link Complex::dot() const @endlink + * @todoc Remove workaround when Doxygen can handle const */ static T dot(const Complex& a, const Complex& b) { return a._real*b._real + a._imaginary*b._imaginary; @@ -136,8 +136,8 @@ template class Complex { * To be used in transformations later. @f[ * c = v_x + iv_y * @f] - * @see operator Vector2(), @ref transformVector() - * @todoc Explicit reference when Doxygen can handle conversion operators + * @see @ref Complex::operator Vector2() "operator Vector2()", @ref transformVector() + * @todoc Remove workaround when Doxygen can handle unscoped conversion operators */ constexpr explicit Complex(const Vector2& vector): _real(vector.x()), _imaginary(vector.y()) {} @@ -407,9 +407,9 @@ template class Complex { * @f[ * v' = c v = c (v_x + iv_y) * @f] - * @see @ref Complex(const Vector2&), operator Vector2(), + * @see @ref Complex(const Vector2&), @ref Complex::operator Vector2() "operator Vector2()", * @ref Matrix3::transformVector() - * @todoc Explicit reference when Doxygen can handle conversion operators + * @todoc Remove workaround when Doxygen can handle unscoped conversion operators */ Vector2 transformVector(const Vector2& vector) const { return Vector2((*this)*Complex(vector)); diff --git a/src/Magnum/Math/DualComplex.h b/src/Magnum/Math/DualComplex.h index 01e1436e6..215ab4eef 100644 --- a/src/Magnum/Math/DualComplex.h +++ b/src/Magnum/Math/DualComplex.h @@ -71,11 +71,11 @@ template class DualComplex: public Dual> { * @f[ * \hat c = (0 + i1) + \epsilon (v_x + iv_y) * @f] - * @see translation() const, + * @see @link translation() const @endlink, * @ref Matrix3::translation(const Vector2&), * @ref DualQuaternion::translation(), @ref Vector2::xAxis(), * @ref Vector2::yAxis() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ static DualComplex translation(const Vector2& vector) { return {{}, {vector.x(), vector.y()}}; diff --git a/src/Magnum/Math/DualQuaternion.h b/src/Magnum/Math/DualQuaternion.h index 4803a0c6d..918207a50 100644 --- a/src/Magnum/Math/DualQuaternion.h +++ b/src/Magnum/Math/DualQuaternion.h @@ -56,11 +56,11 @@ template class DualQuaternion: public Dual> { * Expects that the rotation axis is normalized. @f[ * \hat q = [\boldsymbol a \cdot sin \frac \theta 2, cos \frac \theta 2] + \epsilon [\boldsymbol 0, 0] * @f] - * @see rotation() const, @ref Quaternion::rotation(), + * @see @link rotation() const @endlink, @ref Quaternion::rotation(), * @ref Matrix4::rotation(), @ref DualComplex::rotation(), * @ref Vector3::xAxis(), @ref Vector3::yAxis(), * @ref Vector3::zAxis(), @ref Vector::isNormalized() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ static DualQuaternion rotation(Rad angle, const Vector3& normalizedAxis) { return {Quaternion::rotation(angle, normalizedAxis), {{}, T(0)}}; @@ -75,11 +75,11 @@ template class DualQuaternion: public Dual> { * @f[ * \hat q = [\boldsymbol 0, 1] + \epsilon [\frac{\boldsymbol v}{2}, 0] * @f] - * @see translation() const, + * @see @link translation() const @endlink, * @ref Matrix4::translation(const Vector3&), * @ref DualComplex::translation(), @ref Vector3::xAxis(), * @ref Vector3::yAxis(), @ref Vector3::zAxis() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ static DualQuaternion translation(const Vector3& vector) { return {{}, {vector/T(2), T(0)}}; diff --git a/src/Magnum/Math/Matrix3.h b/src/Magnum/Math/Matrix3.h index 979f55d07..c346e46fd 100644 --- a/src/Magnum/Math/Matrix3.h +++ b/src/Magnum/Math/Matrix3.h @@ -49,10 +49,10 @@ template class Matrix3: public Matrix3x3 { * @brief 2D translation matrix * @param vector Translation vector * - * @see translation() const, @ref DualComplex::translation(), + * @see @link translation() const @endlink, @ref DualComplex::translation(), * @ref Matrix4::translation(const Vector3&), * @ref Vector2::xAxis(), @ref Vector2::yAxis() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ constexpr static Matrix3 translation(const Vector2& vector) { return {{ T(1), T(0), T(0)}, @@ -78,10 +78,10 @@ template class Matrix3: public Matrix3x3 { * @brief 2D rotation matrix * @param angle Rotation angle (counterclockwise) * - * @see rotation() const, @ref Complex::rotation(), + * @see @link rotation() const @endlink, @ref Complex::rotation(), * @ref DualComplex::rotation(), * @ref Matrix4::rotation(Rad, const Vector3&) - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ static Matrix3 rotation(Rad angle); @@ -116,8 +116,8 @@ template class Matrix3: public Matrix3x3 { * @param translation Translation part (first two elements of * third column) * - * @see @ref rotationScaling(), translation() const - * @todoc Explicit reference when Doxygen can handle const + * @see @ref rotationScaling(), @link translation() const @endlink + * @todoc Remove workaround when Doxygen can handle const */ constexpr static Matrix3 from(const Matrix2x2& rotationScaling, const Vector2& translation) { return {{rotationScaling[0], T(0)}, @@ -165,10 +165,10 @@ template class Matrix3: public Matrix3x3 { * * Upper-left 2x2 part of the matrix. * @see @ref from(const Matrix2x2&, const Vector2&), - * rotation() const, @ref rotationNormalized(), + * @link rotation() const @endlink, @ref rotationNormalized(), * @ref uniformScaling(), @ref rotation(Rad), * @ref Matrix4::rotationScaling() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ constexpr Matrix2x2 rotationScaling() const { return {(*this)[0].xy(), @@ -180,10 +180,10 @@ template class Matrix3: public Matrix3x3 { * * Similar to @ref rotationScaling(), but additionally checks that the * base vectors are normalized. - * @see rotation() const, @ref uniformScaling(), + * @see @link rotation() const @endlink, @ref uniformScaling(), * @ref Matrix4::rotationNormalized() * @todo assert also orthogonality or this is good enough? - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ Matrix2x2 rotationNormalized() const { CORRADE_ASSERT((*this)[0].xy().isNormalized() && (*this)[1].xy().isNormalized(), @@ -199,8 +199,8 @@ template class Matrix3: public Matrix3x3 { * scaling. * @see @ref rotationNormalized(), @ref rotationScaling(), * @ref uniformScaling(), @ref rotation(Rad), - * Matrix4::rotation() const - * @todoc Explicit reference when Doxygen can handle const + * @link Matrix4::rotation() const @endlink + * @todoc Remove workaround when Doxygen can handle const */ Matrix2x2 rotation() const { CORRADE_ASSERT(TypeTraits::equals((*this)[0].xy().dot(), (*this)[1].xy().dot()), @@ -216,10 +216,10 @@ template class Matrix3: public Matrix3x3 { * Expects that the scaling is the same in all axes. Faster alternative * to @ref uniformScaling(), because it doesn't compute the square * root. - * @see @ref rotationScaling(), rotation() const, + * @see @ref rotationScaling(), @link rotation() const @endlink, * @ref rotationNormalized(), @ref scaling(const Vector2&), * @ref Matrix4::uniformScaling() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ T uniformScalingSquared() const { const T scalingSquared = (*this)[0].xy().dot(); @@ -234,10 +234,10 @@ template class Matrix3: public Matrix3x3 { * Length of vectors in upper-left 2x2 part of the matrix. Expects that * the scaling is the same in all axes. Use faster alternative * @ref uniformScalingSquared() where possible. - * @see @ref rotationScaling(), rotation() const, + * @see @ref rotationScaling(), @link rotation() const @endlink, * @ref rotationNormalized(), @ref scaling(const Vector2&), * @ref Matrix4::uniformScaling() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ T uniformScaling() const { return std::sqrt(uniformScalingSquared()); } @@ -280,9 +280,9 @@ template class Matrix3: public Matrix3x3 { * @f$ A^{i, j} @f$ is matrix without i-th row and j-th column, see * @ref ij() * @see @ref isRigidTransformation(), @ref invertedOrthogonal(), - * @ref rotationScaling(), translation() const, + * @ref rotationScaling(), @link translation() const @endlink, * @ref Matrix4::invertedRigid() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ Matrix3 invertedRigid() const; diff --git a/src/Magnum/Math/Matrix4.h b/src/Magnum/Math/Matrix4.h index c27ea9350..bec756648 100644 --- a/src/Magnum/Math/Matrix4.h +++ b/src/Magnum/Math/Matrix4.h @@ -90,11 +90,11 @@ template class Matrix4: public Matrix4x4 { * Expects that the rotation axis is normalized. If possible, use * faster alternatives like @ref rotationX(), @ref rotationY() and * @ref rotationZ(). - * @see rotation() const, @ref Quaternion::rotation(), + * @see @link rotation() const @endlink, @ref Quaternion::rotation(), * @ref DualQuaternion::rotation(), @ref Matrix3::rotation(Rad), * @ref Vector3::xAxis(), @ref Vector3::yAxis(), * @ref Vector3::zAxis(), @ref Vector::isNormalized() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ static Matrix4 rotation(Rad angle, const Vector3& normalizedAxis); @@ -104,9 +104,9 @@ template class Matrix4: public Matrix4x4 { * * Faster than calling `%Matrix4::rotation(angle, %Vector3::xAxis())`. * @see @ref rotation(Rad, const Vector3&), @ref rotationY(), - * @ref rotationZ(), rotation() const, + * @ref rotationZ(), @link rotation() const @endlink, * @ref Quaternion::rotation(), @ref Matrix3::rotation(Rad) - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ static Matrix4 rotationX(Rad angle); @@ -116,9 +116,9 @@ template class Matrix4: public Matrix4x4 { * * Faster than calling `%Matrix4::rotation(angle, %Vector3::yAxis())`. * @see @ref rotation(Rad, const Vector3&), @ref rotationX(), - * @ref rotationZ(), rotation() const, + * @ref rotationZ(), @link rotation() const @endlink, * @ref Quaternion::rotation(), @ref Matrix3::rotation(Rad) - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ static Matrix4 rotationY(Rad angle); @@ -128,9 +128,9 @@ template class Matrix4: public Matrix4x4 { * * Faster than calling `%Matrix4::rotation(angle, %Vector3::zAxis())`. * @see @ref rotation(Rad, const Vector3&), @ref rotationX(), - * @ref rotationY(), rotation() const, + * @ref rotationY(), @link rotation() const @endlink, * @ref Quaternion::rotation(), @ref Matrix3::rotation(Rad) - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ static Matrix4 rotationZ(Rad angle); @@ -184,8 +184,8 @@ template class Matrix4: public Matrix4x4 { * @param translation Translation part (first three elements of * fourth column) * - * @see @ref rotationScaling(), translation() const - * @todoc Explicit reference when Doxygen can handle const + * @see @ref rotationScaling(), @link translation() const @endlink + * @todoc Remove workaround when Doxygen can handle const */ constexpr static Matrix4 from(const Matrix3x3& rotationScaling, const Vector3& translation) { return {{rotationScaling[0], T(0)}, @@ -234,10 +234,11 @@ template class Matrix4: public Matrix4x4 { * * Upper-left 3x3 part of the matrix. * @see @ref from(const Matrix3x3&, const Vector3&), - * rotation() const, @ref rotationNormalized(), + * @link rotation() const @endlink, @ref rotationNormalized(), * @ref uniformScaling(), @ref rotation(Rad, const Vector3&), - * Matrix3::rotationScaling() const - * @todoc Explicit reference when Doxygen can handle const + * @link Matrix3::rotationScaling() const @endlink + * @todoc Remove workaround when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ constexpr Matrix3x3 rotationScaling() const { return {(*this)[0].xyz(), @@ -250,10 +251,10 @@ template class Matrix4: public Matrix4x4 { * * Similar to @ref rotationScaling(), but additionally checks that the * base vectors are normalized. - * @see rotation() const, @ref uniformScaling(), + * @see @link rotation() const @endlink, @ref uniformScaling(), * @ref Matrix3::rotationNormalized() * @todo assert also orthogonality or this is good enough? - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ Matrix3x3 rotationNormalized() const { CORRADE_ASSERT((*this)[0].xyz().isNormalized() && (*this)[1].xyz().isNormalized() && (*this)[2].xyz().isNormalized(), @@ -270,8 +271,8 @@ template class Matrix4: public Matrix4x4 { * scaling. * @see @ref rotationNormalized(), @ref rotationScaling(), * @ref uniformScaling(), @ref rotation(Rad, const Vector3&), - * Matrix3::rotation() const - * @todoc Explicit reference when Doxygen can handle const + * @link Matrix3::rotation() const @endlink + * @todoc Remove workaround when Doxygen can handle const */ Matrix3x3 rotation() const; @@ -282,10 +283,10 @@ template class Matrix4: public Matrix4x4 { * Expects that the scaling is the same in all axes. Faster alternative * to @ref uniformScaling(), because it doesn't compute the square * root. - * @see @ref rotationScaling(), rotation() const, + * @see @ref rotationScaling(), @link rotation() const @endlink, * @ref rotationNormalized(), @ref scaling(const Vector3&), * @ref Matrix3::uniformScaling() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ T uniformScalingSquared() const; @@ -295,10 +296,10 @@ template class Matrix4: public Matrix4x4 { * Length of vectors in upper-left 3x3 part of the matrix. Expects that * the scaling is the same in all axes. Use faster alternative * @ref uniformScalingSquared() where possible. - * @see @ref rotationScaling(), rotation() const, + * @see @ref rotationScaling(), @link rotation() const @endlink, * @ref rotationNormalized(), @ref scaling(const Vector3&), * @ref Matrix3::uniformScaling() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ T uniformScaling() const { return std::sqrt(uniformScalingSquared()); } @@ -352,9 +353,9 @@ template class Matrix4: public Matrix4x4 { * @f$ A^{i, j} @f$ is matrix without i-th row and j-th column, see * @ref ij() * @see @ref isRigidTransformation(), @ref invertedOrthogonal(), - * @ref rotationScaling(), translation() const, + * @ref rotationScaling(), @link translation() const @endlink, * @ref Matrix3::invertedRigid() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ Matrix4 invertedRigid() const; diff --git a/src/Magnum/Math/Quaternion.h b/src/Magnum/Math/Quaternion.h index 00d4d0d18..671151b27 100644 --- a/src/Magnum/Math/Quaternion.h +++ b/src/Magnum/Math/Quaternion.h @@ -57,8 +57,8 @@ template class Quaternion { * @f[ * p \cdot q = \boldsymbol p_V \cdot \boldsymbol q_V + p_S q_S * @f] - * @see dot() const - * @todoc Explicit reference when Doxygen can handle const + * @see @link dot() const @endlink + * @todoc Remove workaround when Doxygen can handle const */ static T dot(const Quaternion& a, const Quaternion& b) { /** @todo Use four-component SIMD implementation when available */ @@ -337,12 +337,12 @@ template class Quaternion { /** * @brief %Quaternion length * - * See also dot() const which is faster for comparing length with - * other values. @f[ + * See also @link dot() const @endlink which is faster for comparing + * length with other values. @f[ * |q| = \sqrt{q \cdot q} * @f] * @see @ref isNormalized() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ T length() const { return std::sqrt(dot()); } diff --git a/src/Magnum/Math/Vector.h b/src/Magnum/Math/Vector.h index ea2a214cd..39609183f 100644 --- a/src/Magnum/Math/Vector.h +++ b/src/Magnum/Math/Vector.h @@ -87,9 +87,9 @@ template class Vector { * antiparallel. @f[ * \boldsymbol a \cdot \boldsymbol b = \sum_{i=0}^{n-1} \boldsymbol a_i \boldsymbol b_i * @f] - * @see dot() const, @ref operator-(), + * @see @link dot() const @endlink, @ref operator-(), * @ref Vector2::perpendicular() - * @todoc Explicit reference when Doxygen can handle const + * @todoc Remove workaround when Doxygen can handle const */ static T dot(const Vector& a, const Vector& b) { return (a*b).sum(); @@ -469,8 +469,8 @@ template class Vector { * \boldsymbol a_1 = \frac{\boldsymbol a \cdot \boldsymbol b}{\boldsymbol b \cdot \boldsymbol b} \boldsymbol b = * (\boldsymbol a \cdot \boldsymbol b) \boldsymbol b * @f] - * @see dot() const - * @todoc Explicit reference when Doxygen can handle const + * @see @link dot() const @endlink + * @todoc Remove workaround when Doxygen can handle const */ Vector projectedOntoNormalized(const Vector& line) const; diff --git a/src/Magnum/Resource.h b/src/Magnum/Resource.h index ef6db1f3f..21ba8794d 100644 --- a/src/Magnum/Resource.h +++ b/src/Magnum/Resource.h @@ -155,8 +155,8 @@ class Resource { /** * @brief %Resource state * - * @see operator bool(), @ref ResourceManager::state() - * @todoc Explicit reference when Doxygen can handle conversion operators + * @see @ref Resource::operator bool() "operator bool()", @ref ResourceManager::state() + * @todoc Remove workaround when Doxygen can handle unscoped conversion operators */ ResourceState state() { acquire(); diff --git a/src/Magnum/Shapes/Collision.h b/src/Magnum/Shapes/Collision.h index 8fe8e7a78..74e945e43 100644 --- a/src/Magnum/Shapes/Collision.h +++ b/src/Magnum/Shapes/Collision.h @@ -97,8 +97,8 @@ template class Collision { /** * @brief Separation distance * - * @see @ref separationNormal(), operator bool() - * @todoc Explicit reference when Doxygen can handle conversion operators + * @see @ref separationNormal(), @ref Collision::operator bool() "operator bool()" + * @todoc Remove workaround when Doxygen can handle unscoped conversion operators */ Float separationDistance() const { return _separationDistance;