PlayRho  2.0.0
An interactive physics engine & library.
playrho::d2::part::Compositor< P1, P2, P3, P4, P5, P6 > Class Template Reference

A class template for compositing shaped part types eligible for use with classes like the playrho::d2::Shape class. More...

#include <playrho/d2/part/Compositor.hpp>

Inheritance diagram for playrho::d2::part::Compositor< P1, P2, P3, P4, P5, P6 >:
[legend]
Collaboration diagram for playrho::d2::part::Compositor< P1, P2, P3, P4, P5, P6 >:
[legend]

Related Functions

(Note that these are not member functions.)

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto GetChild (const Compositor< P1, P2, P3, P4, P5, P6 > &arg, ChildCounter index) noexcept(noexcept(arg.GetChild(index))) -> decltype(arg.GetChild(index))
 Gets the "child" shape for the given shape configuration. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetChildCount (const Compositor< P1, P2, P3, P4, P5, P6 > &arg) noexcept -> decltype(arg.GetChildCount())
 Gets the "child" count for the given shape configuration. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetDensity (const Compositor< P1, P2, P3, P4, P5, P6 > &arg) noexcept -> decltype(arg.density)
 Gets the density of the given shape configuration. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetDimensions (const Compositor< P1, P2, P3, P4, P5, P6 > &arg) noexcept -> decltype(arg.GetDimensions())
 Gets the rectangle's width and height dimensions. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetFilter (const Compositor< P1, P2, P3, P4, P5, P6 > &arg) noexcept -> decltype(arg.filter)
 Gets the filter of the given shape configuration. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetFriction (const Compositor< P1, P2, P3, P4, P5, P6 > &arg) noexcept -> decltype(arg.friction)
 Gets the friction of the given shape configuration. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto GetMassData (const Compositor< P1, P2, P3, P4, P5, P6 > &arg) noexcept -> decltype(arg.GetMassData(GetDensity(arg)))
 Gets the mass data for the given shape configuration. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetOffset (const Compositor< P1, P2, P3, P4, P5, P6 > &arg) noexcept -> decltype(arg.GetOffset())
 Gets the rectangle's x and y offset. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetRestitution (const Compositor< P1, P2, P3, P4, P5, P6 > &arg) noexcept -> decltype(arg.restitution)
 Gets the restitution of the given shape configuration. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetVertexRadius (const Compositor< P1, P2, P3, P4, P5, P6 > &arg) noexcept(noexcept(arg.GetVertexRadius())) -> decltype(arg.GetVertexRadius())
 Gets the vertex radius of the given shape configuration. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto GetVertexRadius (const Compositor< P1, P2, P3, P4, P5, P6 > &arg, ChildCounter index) noexcept(noexcept(GetChild(arg, index))) -> decltype(GetVertexRadius(GetChild(arg, index)))
 Gets the vertex radius of the given shape configuration. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto IsSensor (const Compositor< P1, P2, P3, P4, P5, P6 > &arg) noexcept -> decltype(arg.sensor)
 Gets the is-sensor state of the given shape configuration. More...
 
template<class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 >
bool operator!= (const Compositor< P11, P12, P13, P14, P15, P16 > &lhs, const Compositor< P21, P22, P23, P24, P25, P26 > &rhs) noexcept
 Inequality operator.
 
template<class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 >
bool operator== (const Compositor< P11, P12, P13, P14, P15, P16 > &lhs, const Compositor< P21, P22, P23, P24, P25, P26 > &rhs) noexcept
 Equality operator.
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto Rotate (Compositor< P1, P2, P3, P4, P5, P6 > &arg,::playrho::d2::UnitVec value) -> std::enable_if_t< detail::HasMemberRotateV< decltype(arg)>, void >
 Rotates the given compositor's vertices by the given value. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto Rotate (Compositor< P1, P2, P3, P4, P5, P6 > &arg,::playrho::d2::UnitVec value) -> std::enable_if_t<!detail::HasMemberRotateV< decltype(arg)>, void >
 No-op rotate function. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto Scale (Compositor< P1, P2, P3, P4, P5, P6 > &arg, const Vec2 &value) -> std::enable_if_t< detail::HasMemberScaleV< decltype(arg)>, void >
 Scales the given compositor's vertices by the given value. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto Scale (Compositor< P1, P2, P3, P4, P5, P6 > &arg, const Vec2 &value) -> std::enable_if_t<!detail::HasMemberScaleV< decltype(arg)>, void >
 No-op scale function. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetDensity (Compositor< P1, P2, P3, P4, P5, P6 > &arg, NonNegative< AreaDensity > value) -> std::enable_if_t< std::is_const_v< decltype(arg.density)>, void >
 No-op density setter. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetDensity (Compositor< P1, P2, P3, P4, P5, P6 > &arg, NonNegative< AreaDensity > value) -> std::enable_if_t<!std::is_const_v< decltype(arg.density)>, void >
 Density setter. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetDimensions (Compositor< P1, P2, P3, P4, P5, P6 > &arg, decltype(arg.GetDimensions()) value) -> decltype(arg.SetDimensions(value))
 Sets the rectangle's width and height dimensions. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetFilter (Compositor< P1, P2, P3, P4, P5, P6 > &arg, Filter value) -> std::enable_if_t< std::is_const_v< decltype(arg.filter)>, void >
 No-op filter setter. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetFilter (Compositor< P1, P2, P3, P4, P5, P6 > &arg, Filter value) -> std::enable_if_t<!std::is_const_v< decltype(arg.filter)>, void >
 Filter setter. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetFriction (Compositor< P1, P2, P3, P4, P5, P6 > &arg, NonNegative< Real > value) -> std::enable_if_t< std::is_const_v< decltype(arg.friction)>, void >
 No-op friction setting function. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetFriction (Compositor< P1, P2, P3, P4, P5, P6 > &arg, NonNegative< Real > value) -> std::enable_if_t<!std::is_const_v< decltype(arg.friction)>, void >
 Sets friction. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetOffset (Compositor< P1, P2, P3, P4, P5, P6 > &arg, decltype(arg.GetOffset()) value) -> decltype(arg.SetOffset(value))
 Sets the rectangle's x and y offset. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetRestitution (Compositor< P1, P2, P3, P4, P5, P6 > &arg, Real value) -> std::enable_if_t< std::is_const_v< decltype(arg.restitution)>, void >
 No-op restitution setting function. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetRestitution (Compositor< P1, P2, P3, P4, P5, P6 > &arg, Real value) -> std::enable_if_t<!std::is_const_v< decltype(arg.restitution)>, void >
 Sets restitution. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetSensor (Compositor< P1, P2, P3, P4, P5, P6 > &arg, bool value) -> std::enable_if_t< std::is_const_v< decltype(arg.sensor)>, void >
 No-op sensor setter. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetSensor (Compositor< P1, P2, P3, P4, P5, P6 > &arg, bool value) -> std::enable_if_t<!std::is_const_v< decltype(arg.sensor)>, void >
 Sensor setter. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetVertexRadius (Compositor< P1, P2, P3, P4, P5, P6 > &arg, ChildCounter index, decltype(arg.GetVertexRadius()) value) -> decltype(arg.SetVertexRadius(index, value))
 Gets the vertex radius of the given shape configuration. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto Translate (Compositor< P1, P2, P3, P4, P5, P6 > &arg, const Length2 &value) -> std::enable_if_t< detail::HasMemberTranslateV< decltype(arg)>, void >
 Translates the given compositor's vertices by the given value. More...
 
template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto Translate (Compositor< P1, P2, P3, P4, P5, P6 > &arg, const Length2 &value) -> std::enable_if_t<!detail::HasMemberTranslateV< decltype(arg)>, void >
 No-op translation function. More...
 

Detailed Description

template<class P1 = DefaultPolicyArgs, class P2 = DefaultPolicyArgs, class P3 = DefaultPolicyArgs, class P4 = DefaultPolicyArgs, class P5 = DefaultPolicyArgs, class P6 = DefaultPolicyArgs>
class playrho::d2::part::Compositor< P1, P2, P3, P4, P5, P6 >

A class template for compositing shaped part types eligible for use with classes like the playrho::d2::Shape class.

Note
This is a host class template that defines geometry, density, friction, restitution, filter, and sensor policies and that is setup to use default implementations of these per the DefaultPolicies class. Use any number of the six policy setter classes - GeometryIs, DensityIs, RestitutionIs, FrictionIs, SensorIs, FilterIs (as a named template class argument) - to override these defaults that you'd like to change.
// Here's an example use of this class for a defaulted, enitrely static, rectangular part...
auto comp0 = Compositor<>{};
// Here's an example use of this class for a fully runtime settable rectangular part...
auto comp1 = Compositor<GeometryIs<DynamicRectangle<>>, //
DensityIs<DynamicAreaDensity<>>, //
RestitutionIs<DynamicRestitution<>>, //
FrictionIs<DynamicFriction<>>, //
SensorIs<DynamicSensor<>>, //
FilterIs<DynamicFilter<>>>{};
See also
playrho::d2::Shape, DefaultPolicies, GeometryIs, DensityIs, FrictionIs, RestitutionIs, FilterIs, SensorIs.
https://en.wikipedia.org/wiki/Modern_C%2B%2B_Design#Policy-based_design
https://flylib.com/books/en/3.401.1.126/1/
Examples
WorldShape.cpp.

Friends And Related Function Documentation

◆ GetChild()

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto GetChild ( const Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
ChildCounter  index 
) -> decltype(arg.GetChild(index))
related

Gets the "child" shape for the given shape configuration.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member function of this same name.

Referenced by playrho::d2::part::Compositor< P1, P2, P3, P4, P5, P6 >::GetChild().

◆ GetChildCount()

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetChildCount ( const Compositor< P1, P2, P3, P4, P5, P6 > &  arg) -> decltype(arg.GetChildCount())
related

Gets the "child" count for the given shape configuration.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member function of this same name.

Referenced by playrho::d2::part::Compositor< P1, P2, P3, P4, P5, P6 >::GetChildCount().

◆ GetDensity()

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetDensity ( const Compositor< P1, P2, P3, P4, P5, P6 > &  arg) -> decltype(arg.density)
related

Gets the density of the given shape configuration.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member variable of this same name.

◆ GetDimensions()

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetDimensions ( const Compositor< P1, P2, P3, P4, P5, P6 > &  arg) -> decltype(arg.GetDimensions())
related

Gets the rectangle's width and height dimensions.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member function of this same name.

◆ GetFilter()

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetFilter ( const Compositor< P1, P2, P3, P4, P5, P6 > &  arg) -> decltype(arg.filter)
related

Gets the filter of the given shape configuration.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member variable of this same name.

◆ GetFriction()

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetFriction ( const Compositor< P1, P2, P3, P4, P5, P6 > &  arg) -> decltype(arg.friction)
related

Gets the friction of the given shape configuration.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member variable of this same name.

◆ GetMassData()

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto GetMassData ( const Compositor< P1, P2, P3, P4, P5, P6 > &  arg) -> decltype(arg.GetMassData(GetDensity(arg)))
related

Gets the mass data for the given shape configuration.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member function of this same name.

Referenced by playrho::d2::part::Compositor< P1, P2, P3, P4, P5, P6 >::GetMassData().

◆ GetOffset()

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetOffset ( const Compositor< P1, P2, P3, P4, P5, P6 > &  arg) -> decltype(arg.GetOffset())
related

Gets the rectangle's x and y offset.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member function of this same name.

Referenced by playrho::d2::part::Compositor< P1, P2, P3, P4, P5, P6 >::GetOffset().

◆ GetRestitution()

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetRestitution ( const Compositor< P1, P2, P3, P4, P5, P6 > &  arg) -> decltype(arg.restitution)
related

Gets the restitution of the given shape configuration.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member variable of this same name.

◆ GetVertexRadius() [1/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto GetVertexRadius ( const Compositor< P1, P2, P3, P4, P5, P6 > &  arg) -> decltype(arg.GetVertexRadius())
related

Gets the vertex radius of the given shape configuration.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member function of this same name.

Referenced by playrho::d2::part::Compositor< P1, P2, P3, P4, P5, P6 >::GetVertexRadius().

◆ GetVertexRadius() [2/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto GetVertexRadius ( const Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
ChildCounter  index 
) -> decltype(GetVertexRadius(GetChild(arg, index)))
related

Gets the vertex radius of the given shape configuration.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member function of this same name.

◆ IsSensor()

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
constexpr auto IsSensor ( const Compositor< P1, P2, P3, P4, P5, P6 > &  arg) -> decltype(arg.sensor)
related

Gets the is-sensor state of the given shape configuration.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member variable of this same name.

◆ Rotate() [1/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto Rotate ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
::playrho::d2::UnitVec  value 
) -> std::enable_if_t<detail::HasMemberRotateV<decltype(arg)>, void>
related

Rotates the given compositor's vertices by the given value.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member function of this same name and accepting the given value.

Referenced by playrho::d2::part::Compositor< P1, P2, P3, P4, P5, P6 >::Rotate().

◆ Rotate() [2/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto Rotate ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
::playrho::d2::UnitVec  value 
) -> std::enable_if_t<!detail::HasMemberRotateV<decltype(arg)>, void>
related

No-op rotate function.

Note
By way of SFINAE, this function is only available from overload resolution for objects not having a member function of this same name and accepting the given value.
Exceptions
InvalidArgumentif value not the right direction.

◆ Scale() [1/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto Scale ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
const Vec2 value 
) -> std::enable_if_t<detail::HasMemberScaleV<decltype(arg)>, void>
related

Scales the given compositor's vertices by the given value.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member function of this same name and accepting the given value.

Referenced by playrho::d2::part::Compositor< P1, P2, P3, P4, P5, P6 >::Scale().

◆ Scale() [2/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto Scale ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
const Vec2 value 
) -> std::enable_if_t<!detail::HasMemberScaleV<decltype(arg)>, void>
related

No-op scale function.

Note
By way of SFINAE, this function is only available from overload resolution for objects not having a member function of this same name and accepting the given value.
Exceptions
InvalidArgumentif value not the identity vector.

◆ SetDensity() [1/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetDensity ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
NonNegative< AreaDensity value 
) -> std::enable_if_t<std::is_const_v<decltype(arg.density)>, void>
related

No-op density setter.

Note
By way of SFINAE, this function is only available from overload resolution for objects not having a member variable of this same name and accepting the given value.
Exceptions
InvalidArgumentif value different from existing.

◆ SetDensity() [2/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetDensity ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
NonNegative< AreaDensity value 
) -> std::enable_if_t<!std::is_const_v<decltype(arg.density)>, void>
related

Density setter.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member variable of this same name and accepting the given value.

◆ SetDimensions()

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetDimensions ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
decltype(arg.GetDimensions())  value 
) -> decltype(arg.SetDimensions(value))
related

Sets the rectangle's width and height dimensions.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member function of this same name and accepting the given value.

Referenced by playrho::d2::part::Compositor< P1, P2, P3, P4, P5, P6 >::SetDimensions().

◆ SetFilter() [1/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetFilter ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
Filter  value 
) -> std::enable_if_t<std::is_const_v<decltype(arg.filter)>, void>
related

No-op filter setter.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member variable of this same name and accepting the given value.
Exceptions
InvalidArgumentif value different from existing.

◆ SetFilter() [2/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetFilter ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
Filter  value 
) -> std::enable_if_t<!std::is_const_v<decltype(arg.filter)>, void>
related

Filter setter.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member variable of this same name and accepting the given value.

◆ SetFriction() [1/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetFriction ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
NonNegative< Real value 
) -> std::enable_if_t<std::is_const_v<decltype(arg.friction)>, void>
related

No-op friction setting function.

Note
By way of SFINAE, this function is only available from overload resolution for objects not having a member variable of this same name and accepting the given value.
Exceptions
InvalidArgumentif value different from existing.

◆ SetFriction() [2/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetFriction ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
NonNegative< Real value 
) -> std::enable_if_t<!std::is_const_v<decltype(arg.friction)>, void>
related

Sets friction.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member variable of this same name and accepting the given value.

◆ SetOffset()

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetOffset ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
decltype(arg.GetOffset())  value 
) -> decltype(arg.SetOffset(value))
related

Sets the rectangle's x and y offset.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member function of this same name and accepting the given value.

Referenced by playrho::d2::part::Compositor< P1, P2, P3, P4, P5, P6 >::SetOffset().

◆ SetRestitution() [1/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetRestitution ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
Real  value 
) -> std::enable_if_t<std::is_const_v<decltype(arg.restitution)>, void>
related

No-op restitution setting function.

Note
By way of SFINAE, this function is only available from overload resolution for objects not having a member variable of this same name and accepting the given value.
Exceptions
InvalidArgumentif value different from existing.

◆ SetRestitution() [2/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetRestitution ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
Real  value 
) -> std::enable_if_t<!std::is_const_v<decltype(arg.restitution)>, void>
related

Sets restitution.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member variable of this same name and accepting the given value.

◆ SetSensor() [1/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetSensor ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
bool  value 
) -> std::enable_if_t<std::is_const_v<decltype(arg.sensor)>, void>
related

No-op sensor setter.

Note
By way of SFINAE, this function is only available from overload resolution for objects not having a member variable of this same name and accepting the given value.
Exceptions
InvalidArgumentif value different from existing.

◆ SetSensor() [2/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetSensor ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
bool  value 
) -> std::enable_if_t<!std::is_const_v<decltype(arg.sensor)>, void>
related

Sensor setter.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member variable of this same name and accepting the given value.

◆ SetVertexRadius()

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto SetVertexRadius ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
ChildCounter  index,
decltype(arg.GetVertexRadius())  value 
) -> decltype(arg.SetVertexRadius(index, value))
related

Gets the vertex radius of the given shape configuration.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member function of this same name and accepting the given index and value.

Referenced by playrho::d2::part::Compositor< P1, P2, P3, P4, P5, P6 >::SetVertexRadius().

◆ Translate() [1/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto Translate ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
const Length2 value 
) -> std::enable_if_t<detail::HasMemberTranslateV<decltype(arg)>, void>
related

Translates the given compositor's vertices by the given value.

Note
By way of SFINAE, this function is only available from overload resolution for objects having a member function of this same name and accepting the given value.

Referenced by playrho::d2::part::Compositor< P1, P2, P3, P4, P5, P6 >::Translate().

◆ Translate() [2/2]

template<class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
auto Translate ( Compositor< P1, P2, P3, P4, P5, P6 > &  arg,
const Length2 value 
) -> std::enable_if_t<!detail::HasMemberTranslateV<decltype(arg)>, void>
related

No-op translation function.

Note
By way of SFINAE, this function is only available from overload resolution for objects not having a member function of this same name and accepting the given value.
Exceptions
InvalidArgumentif value not zero.

The documentation for this class was generated from the following file: