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>,
63 template <
typename... Args>
90 template <
class DerivedT,
typename StateDataT>
92 common::EmbeddedStateAspect<DerivedT, StateDataT> >
102 template <
typename... Args>
125 template <
class DerivedT,
typename StateDataT,
typename... BaseComposites>
127 :
public CompositeJoiner<EmbedState<DerivedT, StateDataT>, BaseComposites...>
139 template <
typename... Args>
158 template <
class CompositeT,
typename PropertiesDataT>
161 CompositeTrackingAspect<CompositeT>,
162 EmbeddedPropertiesAspect<CompositeT, PropertiesDataT>,
173 template <
typename... Args>
200 template <
class DerivedT,
typename PropertiesDataT>
203 common::EmbeddedPropertiesAspect<DerivedT, PropertiesDataT> >
213 template <
typename... Args>
236 template <
class DerivedT,
typename PropertiesDataT,
typename... CompositeBases>
238 EmbedProperties<DerivedT, PropertiesDataT>,
251 template <
typename... Args>
274 template <
class CompositeT,
typename StateDataT,
typename PropertiesDataT>
277 detail::EmbeddedStateAspect<
278 CompositeTrackingAspect<CompositeT>,
279 EmbeddedStateAndPropertiesAspect<
284 EmbeddedStateAndPropertiesAspect<
302 EmbeddedPropertiesAspect<AspectStateImpl, Derived, PropertiesDataT>;
375 template <
class DerivedT,
typename StateDataT,
typename PropertiesDataT>
377 common::EmbeddedStateAndPropertiesAspect<
385 EmbeddedStateAndPropertiesAspect<DerivedT, StateDataT, PropertiesDataT>;
395 template <
typename... Args>
429 typename PropertiesDataT,
430 typename... CompositeBases>
433 EmbedStateAndProperties<DerivedT, StateDataT, PropertiesDataT>,
449 template <
typename... Args>
#define DART_DECLARE_CLASS_WITH_VIRTUAL_BASE_END
Definition: ClassWithVirtualBase.hpp:44
#define DART_DECLARE_CLASS_WITH_VIRTUAL_BASE_BEGIN
Definition: ClassWithVirtualBase.hpp:43
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:240
EmbedPropertiesOnTopOf(Args &&... args)
Definition: EmbeddedAspect.hpp:252
EmbedProperties< DerivedT, PropertiesDataT > Impl
Definition: EmbeddedAspect.hpp:242
typename Impl::Derived Derived
Definition: EmbeddedAspect.hpp:243
typename Impl::AspectPropertiesData AspectPropertiesData
Definition: EmbeddedAspect.hpp:244
typename Impl::Aspect Aspect
Definition: EmbeddedAspect.hpp:246
virtual ~EmbedPropertiesOnTopOf()=default
typename Impl::AspectProperties AspectProperties
Definition: EmbeddedAspect.hpp:245
Inherit this class to embed Properties into your Composite object.
Definition: EmbeddedAspect.hpp:204
const AspectProperties & getAspectProperties() const
Definition: EmbeddedAspect.hpp:221
AspectProperties mAspectProperties
Aspect::Properties data, directly accessible to your derived class.
Definition: EmbeddedAspect.hpp:228
typename Aspect::PropertiesData AspectPropertiesData
Definition: EmbeddedAspect.hpp:209
DerivedT Derived
Definition: EmbeddedAspect.hpp:206
typename Aspect::Properties AspectProperties
Definition: EmbeddedAspect.hpp:208
EmbedProperties(Args &&... args)
Definition: EmbeddedAspect.hpp:214
common::EmbeddedPropertiesAspect< Derived, PropertiesDataT > Aspect
Definition: EmbeddedAspect.hpp:207
virtual ~EmbedProperties()=default
This is an alternative to EmbedStateAndProperties which allows your class to also inherit other Compo...
Definition: EmbeddedAspect.hpp:435
typename Impl::AspectState AspectState
Definition: EmbeddedAspect.hpp:440
virtual ~EmbedStateAndPropertiesOnTopOf()=default
typename Impl::Derived Derived
Definition: EmbeddedAspect.hpp:438
EmbedStateAndPropertiesOnTopOf(Args &&... args)
Definition: EmbeddedAspect.hpp:450
typename Impl::Aspect Aspect
Definition: EmbeddedAspect.hpp:443
typename Impl::AspectStateData AspectStateData
Definition: EmbeddedAspect.hpp:439
EmbedStateAndProperties< DerivedT, StateDataT, PropertiesDataT > Impl
Definition: EmbeddedAspect.hpp:437
typename Impl::AspectPropertiesData AspectPropertiesData
Definition: EmbeddedAspect.hpp:441
typename Impl::AspectProperties AspectProperties
Definition: EmbeddedAspect.hpp:442
Inherit this class to embed both State and Properties into your Composite object.
Definition: EmbeddedAspect.hpp:381
common::EmbeddedStateAndPropertiesAspect< DerivedT, StateDataT, PropertiesDataT > Aspect
Definition: EmbeddedAspect.hpp:385
typename Aspect::Properties AspectProperties
Definition: EmbeddedAspect.hpp:390
const AspectProperties & getAspectProperties() const
Definition: EmbeddedAspect.hpp:408
AspectState mAspectState
Aspect::State data, directly accessible to your derived class.
Definition: EmbeddedAspect.hpp:415
virtual ~EmbedStateAndProperties()=default
DerivedT Derived
Definition: EmbeddedAspect.hpp:383
const AspectState & getAspectState() const
Definition: EmbeddedAspect.hpp:403
typename Aspect::StateData AspectStateData
Definition: EmbeddedAspect.hpp:388
AspectProperties mAspectProperties
Aspect::Properties data, directly accessible to your derived class.
Definition: EmbeddedAspect.hpp:418
typename Aspect::State AspectState
Definition: EmbeddedAspect.hpp:387
EmbedStateAndProperties(Args &&... args)
Definition: EmbeddedAspect.hpp:396
typename Aspect::PropertiesData AspectPropertiesData
Definition: EmbeddedAspect.hpp:391
This is an alternative to EmbedState which allows your class to also inherit other Composite objects ...
Definition: EmbeddedAspect.hpp:128
typename Impl::Aspect Aspect
Definition: EmbeddedAspect.hpp:134
EmbedStateOnTopOf(Args &&... args)
Definition: EmbeddedAspect.hpp:140
typename Impl::AspectStateData AspectStateData
Definition: EmbeddedAspect.hpp:132
virtual ~EmbedStateOnTopOf()=default
typename Impl::AspectState AspectState
Definition: EmbeddedAspect.hpp:133
typename Impl::Derived Derived
Definition: EmbeddedAspect.hpp:131
EmbedState< DerivedT, StateDataT > Impl
Definition: EmbeddedAspect.hpp:130
Inherit this class to embed a State into your Composite object.
Definition: EmbeddedAspect.hpp:93
DerivedT Derived
Definition: EmbeddedAspect.hpp:95
typename Aspect::StateData AspectStateData
Definition: EmbeddedAspect.hpp:98
AspectState mAspectState
Aspect::State data, directly accessible to your derived class.
Definition: EmbeddedAspect.hpp:117
EmbedState(Args &&... args)
Definition: EmbeddedAspect.hpp:103
virtual ~EmbedState()=default
const AspectState & getAspectState() const
Definition: EmbeddedAspect.hpp:110
common::EmbeddedStateAspect< Derived, StateDataT > Aspect
Definition: EmbeddedAspect.hpp:96
typename Aspect::State AspectState
Definition: EmbeddedAspect.hpp:97
This is the implementation of a standard embedded-properties Aspect.
Definition: EmbeddedAspect.hpp:164
EmbeddedPropertiesAspect(Args &&... args)
Definition: EmbeddedAspect.hpp:174
virtual ~EmbeddedPropertiesAspect()=default
typename Impl::Properties Properties
Definition: EmbeddedAspect.hpp:169
typename Impl::PropertiesData PropertiesData
Definition: EmbeddedAspect.hpp:170
This is the implementation of a standard combination of embedded-state and embedded-properties Aspect...
Definition: EmbeddedAspect.hpp:289
typename AspectStateImpl::StateData StateData
Definition: EmbeddedAspect.hpp:307
EmbeddedStateAndPropertiesAspect()
Construct using nothing. The object will remain unaffected.
Definition: EmbeddedAspect.hpp:320
EmbeddedStateAndPropertiesAspect(const StateData &state)
Construct using a State. The object's Properties will remain unaffected.
Definition: EmbeddedAspect.hpp:326
virtual ~EmbeddedStateAndPropertiesAspect()=default
typename AspectStateImpl::State State
Definition: EmbeddedAspect.hpp:306
EmbeddedStateAndPropertiesAspect(const PropertiesData &properties, const StateData &state)
Construct using a Properties and State instance.
Definition: EmbeddedAspect.hpp:348
std::unique_ptr< Aspect > cloneAspect() const override
Clone this Aspect into a new composite.
Definition: EmbeddedAspect.hpp:356
EmbeddedStateAndPropertiesAspect(const StateData &state, const PropertiesData &properties)
Construct using a State and Properties instance.
Definition: EmbeddedAspect.hpp:340
CompositeT CompositeType
Definition: EmbeddedAspect.hpp:312
typename AspectPropertiesImpl::PropertiesData PropertiesData
Definition: EmbeddedAspect.hpp:310
typename AspectPropertiesImpl::Properties Properties
Definition: EmbeddedAspect.hpp:309
EmbeddedStateAndPropertiesAspect(const EmbeddedStateAndPropertiesAspect &)=delete
EmbeddedStateAndPropertiesAspect(const PropertiesData &properties)
Construct using Properties. The object's State will remain unaffected.
Definition: EmbeddedAspect.hpp:333
EmbeddedStateAndPropertiesAspect< CompositeT, StateDataT, PropertiesDataT > Derived
Definition: EmbeddedAspect.hpp:294
This is the implementation of a standard embedded-state Aspect.
Definition: EmbeddedAspect.hpp:55
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:50
Definition: EmbeddedAspect.hpp:253
PropertiesDataT PropertiesData
Definition: EmbeddedAspect.hpp:264
PropertiesT Properties
Definition: EmbeddedAspect.hpp:263
const Properties & getProperties() const
Definition: EmbeddedAspect.hpp:342
Definition: EmbeddedAspect.hpp:83
StateDataT StateData
Definition: EmbeddedAspect.hpp:88
StateT State
Definition: EmbeddedAspect.hpp:87
const State & getState() const
Get the State of this Aspect.
Definition: EmbeddedAspect.hpp:169
@ NoArg
Definition: Empty.hpp:49
Definition: BulletCollisionDetector.cpp:65
Definition: SharedLibraryManager.hpp:46