//============================================================================== Node* EndEffector::cloneNode(BodyNode* _parent) const { EndEffector* ee = new EndEffector(_parent, PropertiesData()); ee->duplicateAddons(this); ee->copy(this); if(mIK) ee->mIK = mIK->clone(ee); return ee; }
//============================================================================== EndEffector::PropertiesData EndEffector::getEndEffectorProperties() const { return PropertiesData(getEntityProperties(), mEndEffectorP, getAddonProperties()); }
using Base = BaseT; using Derived = DerivedT; using PropertiesData = PropertiesDataT; using CompositeType = CompositeT; using Properties = Aspect::MakeProperties<PropertiesData>; constexpr static void (*UpdateProperties)(Derived*) = updateProperties; using AspectImplementation = AspectWithVersionedProperties< Base, Derived, PropertiesData, CompositeT, updateProperties>; AspectWithVersionedProperties() = delete; AspectWithVersionedProperties(const AspectWithVersionedProperties&) = delete; /// Construct using a PropertiesData instance AspectWithVersionedProperties( const PropertiesData& properties = PropertiesData()); /// Construct this Aspect and pass args into the constructor of the Base class template <typename... BaseArgs> AspectWithVersionedProperties( const PropertiesData& properties, BaseArgs&&... args) : Base(std::forward<BaseArgs>(args)...), mProperties(properties) { // Do nothing } // Documentation inherited void setAspectProperties(const Aspect::Properties& someProperties) override final; // Documentation inherited