Skip to content

Commit

Permalink
Merge pull request #344 from louis-langholtz/updates-20200906
Browse files Browse the repository at this point in the history
Doc updates & improvements to CheckedValue
  • Loading branch information
louis-langholtz committed Sep 7, 2020
2 parents 315865c + dc3d008 commit 8bc3ea5
Show file tree
Hide file tree
Showing 97 changed files with 977 additions and 1,360 deletions.
6 changes: 3 additions & 3 deletions Benchmark/BenchmarkMain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -580,7 +580,7 @@ static void ThreadCreateAndDestroy(benchmark::State& state)
/// @details A pretty conventional concurrent queue implementation using a regular queue
/// structure made thread safe with a mutex and a condition variable.
/// @note Behavior is undefined if destroyed in one thread while being accessed in another.
/// @sa https://www.justsoftwaresolutions.co.uk/threading/implementing-a-thread-safe-queue-using-condition-variables.html
/// @see https://www.justsoftwaresolutions.co.uk/threading/implementing-a-thread-safe-queue-using-condition-variables.html
template <typename T>
class ConcurrentQueue
{
Expand Down Expand Up @@ -693,7 +693,7 @@ class Concurrent

/// @brief Atomic element.
/// @note Supports single reader, single writer.
/// @sa http://en.cppreference.com/w/cpp/atomic/atomic_flag
/// @see https://en.cppreference.com/w/cpp/atomic/atomic_flag
template <typename T>
class AtomicSingleElementQueue
{
Expand Down Expand Up @@ -745,7 +745,7 @@ class AtomicSingleElementQueue

/// @brief Atomic queue.
/// @note Supports multiple readers, single writer.
/// @sa http://en.cppreference.com/w/cpp/atomic/atomic_flag
/// @see https://en.cppreference.com/w/cpp/atomic/atomic_flag
template <typename T>
class AtomicQueue
{
Expand Down
14 changes: 5 additions & 9 deletions Build/xcode5/PlayRho.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,7 @@
47928F371E66539000EE6E9E /* FrictionJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 47928F361E66539000EE6E9E /* FrictionJoint.cpp */; };
47928F391E66586400EE6E9E /* DistanceJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 47928F381E66586400EE6E9E /* DistanceJoint.cpp */; };
47928F5D200ABCAE00A5DD5B /* double.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 47928F5C200ABCAE00A5DD5B /* double.cpp */; };
479B63C01ED8B64300D49BC7 /* BoundedValue.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 479B63BD1ED8B64300D49BC7 /* BoundedValue.hpp */; };
479B63C31ED9CAC300D49BC7 /* BoundedValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 479B63C21ED9CAC300D49BC7 /* BoundedValue.cpp */; };
479B63C31ED9CAC300D49BC7 /* CheckedValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 479B63C21ED9CAC300D49BC7 /* CheckedValue.cpp */; };
47AB01BA1D6FA40C0084D721 /* Dump.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 47AB01B91D6FA40C0084D721 /* Dump.cpp */; };
47AFC3051DAEBC120023E9D1 /* PositionSolverManifold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 47AFC3041DAEBC120023E9D1 /* PositionSolverManifold.cpp */; };
47B490D7201E6C3000AB07A0 /* IslandStats.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 47B490D5201E6C3000AB07A0 /* IslandStats.hpp */; };
Expand Down Expand Up @@ -590,8 +589,7 @@
47928F381E66586400EE6E9E /* DistanceJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DistanceJoint.cpp; sourceTree = "<group>"; };
47928F5A2009E83500A5DD5B /* UnitTests.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = UnitTests.hpp; sourceTree = "<group>"; };
47928F5C200ABCAE00A5DD5B /* double.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = double.cpp; sourceTree = "<group>"; };
479B63BD1ED8B64300D49BC7 /* BoundedValue.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = BoundedValue.hpp; sourceTree = "<group>"; };
479B63C21ED9CAC300D49BC7 /* BoundedValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BoundedValue.cpp; sourceTree = "<group>"; };
479B63C21ED9CAC300D49BC7 /* CheckedValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CheckedValue.cpp; sourceTree = "<group>"; };
47AB01B91D6FA40C0084D721 /* Dump.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Dump.cpp; sourceTree = "<group>"; };
47AFC3041DAEBC120023E9D1 /* PositionSolverManifold.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PositionSolverManifold.cpp; sourceTree = "<group>"; };
47B490D5201E6C3000AB07A0 /* IslandStats.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = IslandStats.hpp; sourceTree = "<group>"; };
Expand Down Expand Up @@ -828,8 +826,8 @@
475A94531D930503000CA9A8 /* BlockAllocator.cpp */,
479039D01D5BB9ED001A2145 /* Body.cpp */,
47928F341E5FE19C00EE6E9E /* BodyConstraint.cpp */,
479B63C21ED9CAC300D49BC7 /* BoundedValue.cpp */,
47D61F791F20229A00E702BD /* ChainShape.cpp */,
479B63C21ED9CAC300D49BC7 /* CheckedValue.cpp */,
474BC3F61D41278800447DCD /* CollideShapes.cpp */,
475A94601D9996B6000CA9A8 /* Contact.cpp */,
474BC3F71D41278800447DCD /* ContactFeature.cpp */,
Expand Down Expand Up @@ -1006,13 +1004,12 @@
4734B2161DC00AFD00F15E29 /* ArrayList.hpp */,
80BB893F141C3E5900F1753A /* BlockAllocator.cpp */,
80BB8940141C3E5900F1753A /* BlockAllocator.hpp */,
479B63BD1ED8B64300D49BC7 /* BoundedValue.hpp */,
476162C61E245C9D002C7FB0 /* CodeDumper.cpp */,
476162C71E245C9D002C7FB0 /* CodeDumper.hpp */,
470463ED250305C900614373 /* CheckedValue.hpp */,
4764085625047C090090F711 /* Finite.hpp */,
47B58F531F570E2C00354C34 /* DynamicMemory.cpp */,
47B58F541F570E2C00354C34 /* DynamicMemory.hpp */,
4764085625047C090090F711 /* Finite.hpp */,
4727242D1E315E1A00C64921 /* Fixed.hpp */,
47E36F4E1FE8477000C10B79 /* FixedLimits.hpp */,
47E36F521FE8534500C10B79 /* FixedMath.hpp */,
Expand Down Expand Up @@ -1421,7 +1418,6 @@
47D28D931F6E2D8A0094C032 /* TypeJointVisitor.hpp in Headers */,
470F94B41EC4CB6C00AA3C82 /* Filter.hpp in Headers */,
4787D6CF1F2EC902008C115E /* MotorJointConf.hpp in Headers */,
479B63C01ED8B64300D49BC7 /* BoundedValue.hpp in Headers */,
4751EE291CEDD78F00D459CB /* Mobile.hpp in Headers */,
4751EE2B1CEDD79900D459CB /* ConveyorBelt.hpp in Headers */,
4768D3FD1E414A0100574143 /* Vector2.hpp in Headers */,
Expand Down Expand Up @@ -1686,7 +1682,7 @@
47FFD0FB1DAC3EFC000D6D0E /* VelocityConstraint.cpp in Sources */,
47E841701DB3FDC400E5F311 /* WorldManifold.cpp in Sources */,
474BC43D1D413DC200447DCD /* World.cpp in Sources */,
479B63C31ED9CAC300D49BC7 /* BoundedValue.cpp in Sources */,
479B63C31ED9CAC300D49BC7 /* CheckedValue.cpp in Sources */,
475A94561D930E6C000CA9A8 /* Fixture.cpp in Sources */,
4731DE161DDCD00100E7F931 /* FixtureProxy.cpp in Sources */,
473E01A01F81705100D58CC8 /* Vector.cpp in Sources */,
Expand Down
3 changes: 3 additions & 0 deletions Documentation/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
API/
en_US.aff
en_US.dic
8 changes: 1 addition & 7 deletions Documentation/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ PROJECT_NUMBER = 0.9.0
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF = "An Interactive Real-Time-Oriented C++14-based Physics Engine & Library"
PROJECT_BRIEF = "An Interactive Real-Time-Oriented C++ Physics Engine & Library"

# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
Expand Down Expand Up @@ -240,12 +240,6 @@ TAB_SIZE = 4

ALIASES =

# This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding "class=itcl::class"
# will allow you to use the command class in the itcl::class meaning.

TCL_SUBST =

# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
# instance, some of the names that are used will be different. The list of all
Expand Down
10 changes: 5 additions & 5 deletions PlayRho/Collision/AABB.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,15 @@ template <std::size_t N> struct RayCastInput;
/// @details This is a concrete value class template for an N-dimensional axis aligned
/// bounding box (AABB) which is a type of bounding volume.
///
/// @note This class satisfies at least the following concepts: all the basic concepts,
/// <code>EqualityComparable</code>, and <code>Swappable</code>.
/// @note This class satisfies at least the following named requirement: all the basic named
/// requirements, <code>EqualityComparable</code>, and <code>Swappable</code>.
/// @note This class is composed of &mdash; as in contains and owns &mdash; N
/// <code>LengthInterval</code> variables.
/// @note Non-defaulted methods of this class are marked <code>noexcept</code> and expect
/// that the Length type doesn't throw.
///
/// @sa https://en.wikipedia.org/wiki/Bounding_volume
/// @sa http://en.cppreference.com/w/cpp/concept
/// @see https://en.wikipedia.org/wiki/Bounding_volume
/// @see https://en.cppreference.com/w/cpp/named_req
///
template <std::size_t N>
struct AABB
Expand Down Expand Up @@ -419,7 +419,7 @@ using AABB = detail::AABB<2>;
/// @warning Behavior is undefined for an invalid AABB.
/// @return Twice the sum of the width and height.
/// @relatedalso playrho::detail::AABB
/// @sa https://en.wikipedia.org/wiki/Perimeter
/// @see https://en.wikipedia.org/wiki/Perimeter
constexpr Length GetPerimeter(const AABB& aabb) noexcept
{
return (GetSize(aabb.ranges[0]) + GetSize(aabb.ranges[1])) * 2;
Expand Down
2 changes: 1 addition & 1 deletion PlayRho/Collision/Collision.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ struct ClipVertex
};

/// @brief Clip list for <code>ClipSegmentToLine</code>.
/// @sa ClipSegmentToLine.
/// @see ClipSegmentToLine.
/// @note This data structure is at least 24-bytes large.
using ClipList = ArrayList<ClipVertex, MaxManifoldPoints>;

Expand Down
6 changes: 3 additions & 3 deletions PlayRho/Collision/DistanceProxy.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ namespace d2 {
///
/// @note This data structure is 24-bytes.
///
/// @sa https://en.wikipedia.org/wiki/Gilbert%2DJohnson%2DKeerthi_distance_algorithm
/// @see https://en.wikipedia.org/wiki/Gilbert%2DJohnson%2DKeerthi_distance_algorithm
///
class DistanceProxy
{
Expand Down Expand Up @@ -159,7 +159,7 @@ namespace d2 {
///
/// @return Vertex linear position (relative to the shape's origin) at the given index.
///
/// @sa Distance.
/// @see Distance.
///
auto GetVertex(VertexCounter index) const noexcept
{
Expand Down Expand Up @@ -215,7 +215,7 @@ namespace d2 {
/// @param dir Direction vector to find index for.
/// @return <code>InvalidVertex</code> if d is invalid or the count of vertices is zero,
/// otherwise a value from 0 to one less than count.
/// @sa GetVertexCount().
/// @see GetVertexCount().
/// @relatedalso DistanceProxy
template <class T>
inline VertexCounter GetSupportIndex(const DistanceProxy& proxy, T dir) noexcept
Expand Down
8 changes: 4 additions & 4 deletions PlayRho/Collision/DynamicTree.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ DynamicTree::Size UpdateNonRoot(DynamicTree::TreeNode nodes[],
DynamicTree::DynamicTree() noexcept = default;

DynamicTree::DynamicTree(Size nodeCapacity):
m_nodes{nodeCapacity? Alloc<TreeNode>(nodeCapacity): nullptr},
m_nodes{nodeCapacity? AllocArray<TreeNode>(nodeCapacity): nullptr},
m_freeIndex{nodeCapacity? 0: GetInvalidSize()},
m_nodeCapacity{nodeCapacity}
{
Expand All @@ -397,7 +397,7 @@ DynamicTree::DynamicTree(Size nodeCapacity):
}

DynamicTree::DynamicTree(const DynamicTree& other):
m_nodes{Alloc<TreeNode>(other.m_nodeCapacity)},
m_nodes{AllocArray<TreeNode>(other.m_nodeCapacity)},
m_rootIndex{other.m_rootIndex},
m_freeIndex{other.m_freeIndex},
m_nodeCount{other.m_nodeCount},
Expand Down Expand Up @@ -434,7 +434,7 @@ void DynamicTree::SetNodeCapacity(Size value)
// The free list is empty. Rebuild a bigger pool.
// Call Realloc first in case it throws so this code doesn't have to restore any state
// and so this function will have no effect.
m_nodes = Realloc<TreeNode>(m_nodes, value);
m_nodes = ReallocArray<TreeNode>(m_nodes, value);
m_nodeCapacity = value;

// Build a linked list for the free list. The parent
Expand Down Expand Up @@ -585,7 +585,7 @@ void DynamicTree::UpdateLeaf(Size index, const AABB& aabb)

void DynamicTree::RebuildBottomUp()
{
const auto nodes = Alloc<Size>(m_nodeCount);
const auto nodes = AllocArray<Size>(m_nodeCount);
auto count = Size{0};

// Build array of leaves. Free the rest.
Expand Down
12 changes: 6 additions & 6 deletions PlayRho/Collision/DynamicTree.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ class Body;
/// @note Nodes are pooled and relocatable, so we use node indices rather than pointers.
/// @note This data structure is 32-bytes large (on at least one 64-bit platform).
///
/// @sa http://www.randygaul.net/2013/08/06/dynamic-aabb-tree/
/// @sa http://www.cs.utah.edu/~thiago/papers/rotations.pdf ("Fast, Effective
/// @see http://www.randygaul.net/2013/08/06/dynamic-aabb-tree/
/// @see http://www.cs.utah.edu/~thiago/papers/rotations.pdf ("Fast, Effective
/// BVH Updates for Animated Scenes")
///
class DynamicTree
Expand Down Expand Up @@ -242,8 +242,8 @@ class DynamicTree
Size FindReference(Size index) const noexcept;

/// @brief Customized swap function for <code>DynamicTree</code> objects.
/// @note This satisfies the <code>Swappable</code> concept.
/// @see http://en.cppreference.com/w/cpp/concept/Swappable
/// @note This satisfies the <code>Swappable</code> named requirement.
/// @see https://en.cppreference.com/w/cpp/named_req/Swappable
friend void swap(DynamicTree& lhs, DynamicTree& rhs) noexcept;

private:
Expand Down Expand Up @@ -790,9 +790,9 @@ void Query(const DynamicTree& tree, const AABB& aabb, QueryFixtureCallback callb

/// @brief Gets the "size" of the given tree.
/// @note Size in this context is defined as the leaf count.
/// @note This provides ancillary support for the container concept's size method.
/// @note This provides ancillary support for the container named requirement's size method.
/// @see DynamicTree::GetLeafCount()
/// @see http://en.cppreference.com/w/cpp/concept/Container
/// @see https://en.cppreference.com/w/cpp/named_req/Container
inline std::size_t size(const DynamicTree& tree) noexcept
{
return tree.GetLeafCount();
Expand Down
2 changes: 1 addition & 1 deletion PlayRho/Collision/IndexPair.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ constexpr bool empty(IndexPair3 pairs) noexcept

/// @brief Gets the dynamic size of the given collection of index pairs.
/// @note This just calls <code>GetNumValidIndices</code>.
/// @sa GetNumValidIndices
/// @see GetNumValidIndices
constexpr auto size(IndexPair3 pairs) -> decltype(GetNumValidIndices(pairs))
{
return GetNumValidIndices(pairs);
Expand Down
16 changes: 8 additions & 8 deletions PlayRho/Collision/Manifold.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@ struct Transformation;
///
/// @image html manifolds.png
///
/// @sa Contact, PositionConstraint, VelocityConstraint
/// @sa https://en.wikipedia.org/wiki/Convex_set
/// @sa http://box2d.org/files/GDC2007/GDC2007_Catto_Erin_Physics2.ppt
/// @see Contact, PositionConstraint, VelocityConstraint
/// @see https://en.wikipedia.org/wiki/Convex_set
/// @see http://box2d.org/files/GDC2007/GDC2007_Catto_Erin_Physics2.ppt
///
class alignas(64) Manifold
{
Expand Down Expand Up @@ -139,7 +139,7 @@ class alignas(64) Manifold
/// @brief Contact feature.
/// @details Uniquely identifies a contact point between two shapes - A and B.
/// @note This field is 4-bytes.
/// @sa GetPointStates.
/// @see GetPointStates.
ContactFeature contactFeature;

/// @brief Normal impulse.
Expand Down Expand Up @@ -325,9 +325,9 @@ class alignas(64) Manifold
///
/// @return Value between 0 and <code>MaxManifoldPoints</code>.
///
/// @sa MaxManifoldPoints.
/// @sa AddPoint().
/// @sa GetPoint().
/// @see MaxManifoldPoints.
/// @see AddPoint().
/// @see GetPoint().
///
constexpr size_type GetPointCount() const noexcept { return m_pointCount; }

Expand Down Expand Up @@ -451,7 +451,7 @@ class alignas(64) Manifold
/// @note Invalid for the unset manifold type.
Length2 m_localPoint = GetInvalid<Length2>();

PointArray m_points; ///< Points of contact (at least 40-bytes). @sa pointCount.
PointArray m_points; ///< Points of contact (at least 40-bytes). @see pointCount.
};

/// @brief Configuration data for manifold calculation.
Expand Down
2 changes: 1 addition & 1 deletion PlayRho/Collision/MassData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ MassData GetMassData(Length r, NonNegative<AreaDensity> density, Length2 v0, Len
const auto center = (v0 + v1) / Real{2};

/// Use the fixture's areal mass density times the shape's second moment of area to derive I.
/// @sa https://en.wikipedia.org/wiki/Second_moment_of_area
/// @see https://en.wikipedia.org/wiki/Second_moment_of_area
const auto halfCircleArea = circle_area / 2;
const auto halfRSquared = r_squared / 2;

Expand Down
2 changes: 1 addition & 1 deletion PlayRho/Collision/MassData.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ struct MassData

/// @brief Rotational inertia, a.k.a. moment of inertia.
/// @details This is the rotational inertia of the shape about the local origin.
/// @sa https://en.wikipedia.org/wiki/Moment_of_inertia
/// @see https://en.wikipedia.org/wiki/Moment_of_inertia
NonNegative<RotInertia> I = NonNegative<RotInertia>{0 * 1_m2 * 1_kg / SquareRadian};
};

Expand Down
2 changes: 1 addition & 1 deletion PlayRho/Collision/RayCastOutput.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ struct RayCastHit

/// @brief Ray cast output.
/// @details This is a type alias for an optional <code>RayCastHit</code> instance.
/// @sa RayCast, Optional, RayCastHit
/// @see RayCast, Optional, RayCastHit
using RayCastOutput = Optional<RayCastHit>;

/// @brief Ray cast callback function.
Expand Down
4 changes: 2 additions & 2 deletions PlayRho/Collision/Shapes/ChainShapeConf.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class ChainShapeConf: public ShapeBuilder<ChainShapeConf>

/// @brief Transforms all the vertices by the given transformation matrix.
/// @note This updates the normals too.
/// @sa https://en.wikipedia.org/wiki/Transformation_matrix
/// @see https://en.wikipedia.org/wiki/Transformation_matrix
ChainShapeConf& Transform(const Mat22& m) noexcept;

/// @brief Gets the "child" shape count.
Expand Down Expand Up @@ -195,7 +195,7 @@ inline NonNegative<Length> GetVertexRadius(const ChainShapeConf& arg, ChildCount

/// @brief Transforms the given chain shape configuration's vertices by the given
/// transformation matrix.
/// @sa https://en.wikipedia.org/wiki/Transformation_matrix
/// @see https://en.wikipedia.org/wiki/Transformation_matrix
inline void Transform(ChainShapeConf& arg, const Mat22& m) noexcept
{
arg.Transform(m);
Expand Down
6 changes: 3 additions & 3 deletions PlayRho/Collision/Shapes/DiskShapeConf.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ namespace d2 {
/// two-dimensional solid round shape. This used to be called the circle shape but
/// that's now used for hollow round shapes.
///
/// @sa https://en.wikipedia.org/wiki/Disk_(mathematics)
/// @see https://en.wikipedia.org/wiki/Disk_(mathematics)
///
/// @ingroup PartsGroup
///
Expand Down Expand Up @@ -69,7 +69,7 @@ struct DiskShapeConf: ShapeBuilder<DiskShapeConf>
}

/// @brief Transforms the location by the given transformation matrix.
/// @sa https://en.wikipedia.org/wiki/Transformation_matrix
/// @see https://en.wikipedia.org/wiki/Transformation_matrix
constexpr DiskShapeConf& Transform(const Mat22& m) noexcept
{
location = m * location;
Expand Down Expand Up @@ -158,7 +158,7 @@ inline MassData GetMassData(const DiskShapeConf& arg) noexcept

/// @brief Transforms the given shape configuration's vertices by the given
/// transformation matrix.
/// @sa https://en.wikipedia.org/wiki/Transformation_matrix
/// @see https://en.wikipedia.org/wiki/Transformation_matrix
inline void Transform(DiskShapeConf& arg, const Mat22& m) noexcept
{
arg.Transform(m);
Expand Down
4 changes: 2 additions & 2 deletions PlayRho/Collision/Shapes/EdgeShapeConf.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class EdgeShapeConf: public ShapeBuilder<EdgeShapeConf>
EdgeShapeConf& UseVertexRadius(NonNegative<Length> value) noexcept;

/// @brief Transforms both vertices by the given transformation matrix.
/// @sa https://en.wikipedia.org/wiki/Transformation_matrix
/// @see https://en.wikipedia.org/wiki/Transformation_matrix
EdgeShapeConf& Transform(const Mat22& m) noexcept;

/// @brief Gets vertex A.
Expand Down Expand Up @@ -163,7 +163,7 @@ inline MassData GetMassData(const EdgeShapeConf& arg) noexcept
}

/// @brief Transforms the given shape configuration's vertices by the given transformation matrix.
/// @sa https://en.wikipedia.org/wiki/Transformation_matrix
/// @see https://en.wikipedia.org/wiki/Transformation_matrix
inline void Transform(EdgeShapeConf& arg, const Mat22& m) noexcept
{
arg.Transform(m);
Expand Down
Loading

0 comments on commit 8bc3ea5

Please sign in to comment.