33 #ifndef DART_COMMON_EMBEDDEDASPECT_HPP_
34 #define DART_COMMON_EMBEDDEDASPECT_HPP_
50 template <
class CompositeT,
typename StateDataT>
52 CompositeTrackingAspect<CompositeT>,
53 EmbeddedStateAspect<CompositeT, StateDataT>, StateDataT>
63 template <
typename... Args>
65 :
Impl(
std::forward<Args>(args)...)
90 template <
class DerivedT,
typename StateDataT>
92 common::EmbeddedStateAspect<DerivedT, StateDataT> >
103 template <
typename... Args>
105 :
Base(
std::forward<Args>(args)...)
128 template <
class DerivedT,
typename StateDataT,
typename... BaseComposites>
130 EmbedState<DerivedT, StateDataT>, BaseComposites...>
143 template <
typename... Args>
165 template <
class CompositeT,
typename PropertiesDataT>
167 CompositeTrackingAspect<CompositeT>,
168 EmbeddedPropertiesAspect<CompositeT, PropertiesDataT>, PropertiesDataT>
179 template <
typename... Args>
181 :
Impl(
std::forward<Args>(args)...)
207 template <
class DerivedT,
typename PropertiesDataT>
209 common::EmbeddedPropertiesAspect<DerivedT, PropertiesDataT> >
220 template <
typename... Args>
222 :
Base(
std::forward<Args>(args)...)
245 template <
class DerivedT,
typename PropertiesDataT,
typename... CompositeBases>
247 EmbedProperties<DerivedT, PropertiesDataT>, CompositeBases...>
260 template <
typename... Args>
285 template <
class CompositeT,
typename StateDataT,
typename PropertiesDataT>
288 detail::EmbeddedStateAspect<
289 CompositeTrackingAspect<CompositeT>,
290 EmbeddedStateAndPropertiesAspect<CompositeT, StateDataT, PropertiesDataT>,
292 EmbeddedStateAndPropertiesAspect<CompositeT, StateDataT, PropertiesDataT>,
381 template <
class DerivedT,
typename StateDataT,
typename PropertiesDataT>
383 common::EmbeddedStateAndPropertiesAspect<
384 DerivedT, StateDataT, PropertiesDataT> >
390 DerivedT, StateDataT, PropertiesDataT>;
400 template <
typename... Args>
402 :
Base(
std::forward<Args>(args)...)
433 template <
class DerivedT,
typename StateDataT,
typename PropertiesDataT,
434 typename... CompositeBases>
436 EmbedStateAndProperties<DerivedT, StateDataT, PropertiesDataT>,
453 template <
typename... Args>
BodyPropPtr properties
Definition: SdfParser.cpp:80
Terminator for the variadic template.
Definition: CompositeJoiner.hpp:45
This is an alternative to EmbedProperties which allows your class to also inherit other Composite obj...
Definition: EmbeddedAspect.hpp:248
EmbedPropertiesOnTopOf(Args &&... args)
Definition: EmbeddedAspect.hpp:261
EmbedProperties< DerivedT, PropertiesDataT > Impl
Definition: EmbeddedAspect.hpp:251
typename Impl::Derived Derived
Definition: EmbeddedAspect.hpp:252
typename Impl::AspectPropertiesData AspectPropertiesData
Definition: EmbeddedAspect.hpp:253
typename Impl::Aspect Aspect
Definition: EmbeddedAspect.hpp:255
virtual ~EmbedPropertiesOnTopOf()=default
typename Impl::AspectProperties AspectProperties
Definition: EmbeddedAspect.hpp:254
Inherit this class to embed Properties into your Composite object.
Definition: EmbeddedAspect.hpp:210
const AspectProperties & getAspectProperties() const
Definition: EmbeddedAspect.hpp:229
AspectProperties mAspectProperties
Aspect::Properties data, directly accessible to your derived class.
Definition: EmbeddedAspect.hpp:237
typename Aspect::PropertiesData AspectPropertiesData
Definition: EmbeddedAspect.hpp:216
DerivedT Derived
Definition: EmbeddedAspect.hpp:213
typename Aspect::Properties AspectProperties
Definition: EmbeddedAspect.hpp:215
EmbedProperties(Args &&... args)
Definition: EmbeddedAspect.hpp:221
common::EmbeddedPropertiesAspect< Derived, PropertiesDataT > Aspect
Definition: EmbeddedAspect.hpp:214
virtual ~EmbedProperties()=default
This is an alternative to EmbedStateAndProperties which allows your class to also inherit other Compo...
Definition: EmbeddedAspect.hpp:438
typename Impl::AspectState AspectState
Definition: EmbeddedAspect.hpp:444
virtual ~EmbedStateAndPropertiesOnTopOf()=default
typename Impl::Derived Derived
Definition: EmbeddedAspect.hpp:442
EmbedStateAndPropertiesOnTopOf(Args &&... args)
Definition: EmbeddedAspect.hpp:454
typename Impl::Aspect Aspect
Definition: EmbeddedAspect.hpp:447
typename Impl::AspectStateData AspectStateData
Definition: EmbeddedAspect.hpp:443
EmbedStateAndProperties< DerivedT, StateDataT, PropertiesDataT > Impl
Definition: EmbeddedAspect.hpp:441
typename Impl::AspectPropertiesData AspectPropertiesData
Definition: EmbeddedAspect.hpp:445
typename Impl::AspectProperties AspectProperties
Definition: EmbeddedAspect.hpp:446
Inherit this class to embed both State and Properties into your Composite object.
Definition: EmbeddedAspect.hpp:385
typename Aspect::Properties AspectProperties
Definition: EmbeddedAspect.hpp:395
const AspectProperties & getAspectProperties() const
Definition: EmbeddedAspect.hpp:414
AspectState mAspectState
Aspect::State data, directly accessible to your derived class.
Definition: EmbeddedAspect.hpp:422
virtual ~EmbedStateAndProperties()=default
DerivedT Derived
Definition: EmbeddedAspect.hpp:388
const AspectState & getAspectState() const
Definition: EmbeddedAspect.hpp:409
common::EmbeddedStateAndPropertiesAspect< DerivedT, StateDataT, PropertiesDataT > Aspect
Definition: EmbeddedAspect.hpp:390
typename Aspect::StateData AspectStateData
Definition: EmbeddedAspect.hpp:393
AspectProperties mAspectProperties
Aspect::Properties data, directly accessible to your derived class.
Definition: EmbeddedAspect.hpp:425
typename Aspect::State AspectState
Definition: EmbeddedAspect.hpp:392
EmbedStateAndProperties(Args &&... args)
Definition: EmbeddedAspect.hpp:401
typename Aspect::PropertiesData AspectPropertiesData
Definition: EmbeddedAspect.hpp:396
This is an alternative to EmbedState which allows your class to also inherit other Composite objects ...
Definition: EmbeddedAspect.hpp:131
typename Impl::Aspect Aspect
Definition: EmbeddedAspect.hpp:138
EmbedStateOnTopOf(Args &&... args)
Definition: EmbeddedAspect.hpp:144
typename Impl::AspectStateData AspectStateData
Definition: EmbeddedAspect.hpp:136
virtual ~EmbedStateOnTopOf()=default
typename Impl::AspectState AspectState
Definition: EmbeddedAspect.hpp:137
typename Impl::Derived Derived
Definition: EmbeddedAspect.hpp:135
EmbedState< DerivedT, StateDataT > Impl
Definition: EmbeddedAspect.hpp:134
Inherit this class to embed a State into your Composite object.
Definition: EmbeddedAspect.hpp:93
DerivedT Derived
Definition: EmbeddedAspect.hpp:96
typename Aspect::StateData AspectStateData
Definition: EmbeddedAspect.hpp:99
AspectState mAspectState
Aspect::State data, directly accessible to your derived class.
Definition: EmbeddedAspect.hpp:120
EmbedState(Args &&... args)
Definition: EmbeddedAspect.hpp:104
virtual ~EmbedState()=default
const AspectState & getAspectState() const
Definition: EmbeddedAspect.hpp:112
common::EmbeddedStateAspect< Derived, StateDataT > Aspect
Definition: EmbeddedAspect.hpp:97
typename Aspect::State AspectState
Definition: EmbeddedAspect.hpp:98
This is the implementation of a standard embedded-properties Aspect.
Definition: EmbeddedAspect.hpp:169
EmbeddedPropertiesAspect(Args &&... args)
Definition: EmbeddedAspect.hpp:180
virtual ~EmbeddedPropertiesAspect()=default
typename Impl::Properties Properties
Definition: EmbeddedAspect.hpp:175
typename Impl::PropertiesData PropertiesData
Definition: EmbeddedAspect.hpp:176
This is the implementation of a standard combination of embedded-state and embedded-properties Aspect...
Definition: EmbeddedAspect.hpp:294
typename AspectStateImpl::StateData StateData
Definition: EmbeddedAspect.hpp:308
EmbeddedStateAndPropertiesAspect()
Construct using nothing. The object will remain unaffected.
Definition: EmbeddedAspect.hpp:321
EmbeddedStateAndPropertiesAspect(const StateData &state)
Construct using a State. The object's Properties will remain unaffected.
Definition: EmbeddedAspect.hpp:328
virtual ~EmbeddedStateAndPropertiesAspect()=default
typename AspectStateImpl::State State
Definition: EmbeddedAspect.hpp:307
EmbeddedStateAndPropertiesAspect(const PropertiesData &properties, const StateData &state)
Construct using a Properties and State instance.
Definition: EmbeddedAspect.hpp:353
std::unique_ptr< Aspect > cloneAspect() const override
Clone this Aspect into a new composite.
Definition: EmbeddedAspect.hpp:362
EmbeddedStateAndPropertiesAspect(const StateData &state, const PropertiesData &properties)
Construct using a State and Properties instance.
Definition: EmbeddedAspect.hpp:344
CompositeT CompositeType
Definition: EmbeddedAspect.hpp:313
detail::EmbeddedStateAspect< CompositeTrackingAspect< CompositeT >, Derived, StateDataT > AspectStateImpl
Definition: EmbeddedAspect.hpp:300
typename AspectPropertiesImpl::PropertiesData PropertiesData
Definition: EmbeddedAspect.hpp:311
EmbeddedStateAndPropertiesAspect< CompositeT, StateDataT, PropertiesDataT > Derived
Definition: EmbeddedAspect.hpp:297
typename AspectPropertiesImpl::Properties Properties
Definition: EmbeddedAspect.hpp:310
EmbeddedStateAndPropertiesAspect(const EmbeddedStateAndPropertiesAspect &)=delete
EmbeddedStateAndPropertiesAspect(const PropertiesData &properties)
Construct using Properties. The object's State will remain unaffected.
Definition: EmbeddedAspect.hpp:336
This is the implementation of a standard embedded-state Aspect.
Definition: EmbeddedAspect.hpp:54
typename Impl::State State
Definition: EmbeddedAspect.hpp:60
EmbeddedStateAspect(Args &&... args)
Definition: EmbeddedAspect.hpp:64
virtual ~EmbeddedStateAspect()=default
typename Impl::StateData StateData
Definition: EmbeddedAspect.hpp:61
RequiresAspect allows classes that inherit Composite to know which Aspects are required for their ope...
Definition: RequiresAspect.hpp:48
Definition: EmbeddedAspect.hpp:250
PropertiesDataT PropertiesData
Definition: EmbeddedAspect.hpp:260
PropertiesT Properties
Definition: EmbeddedAspect.hpp:259
const Properties & getProperties() const
Definition: EmbeddedAspect.hpp:338
Definition: EmbeddedAspect.hpp:79
StateDataT StateData
Definition: EmbeddedAspect.hpp:85
StateT State
Definition: EmbeddedAspect.hpp:84
const State & getState() const
Get the State of this Aspect.
Definition: EmbeddedAspect.hpp:165
@ NoArg
Definition: Empty.hpp:45
Definition: BulletCollisionDetector.cpp:63
Definition: SharedLibraryManager.hpp:43