A class template for compositing shaped part types eligible for use with classes like the playrho::d2::Shape class.  
 More...
 | 
(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...
  | 
|   |