|
|
|
|
@ -43,15 +43,24 @@ namespace Magnum { namespace SceneGraph {
|
|
|
|
|
See @ref FeatureGroup. |
|
|
|
|
*/ |
|
|
|
|
template<UnsignedInt dimensions, class T> class AbstractFeatureGroup { |
|
|
|
|
template<UnsignedInt, class, class> friend class FeatureGroup; |
|
|
|
|
public: |
|
|
|
|
/** @brief Object transformation underlying type */ |
|
|
|
|
typedef T Type; |
|
|
|
|
|
|
|
|
|
enum: UnsignedInt { |
|
|
|
|
Dimensions = dimensions /**< Dimension count */ |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
template<UnsignedInt, class, class> friend class FeatureGroup; |
|
|
|
|
|
|
|
|
|
explicit AbstractFeatureGroup(); |
|
|
|
|
virtual ~AbstractFeatureGroup(); |
|
|
|
|
explicit AbstractFeatureGroup(); |
|
|
|
|
virtual ~AbstractFeatureGroup(); |
|
|
|
|
|
|
|
|
|
void add(AbstractFeature<dimensions, T>& feature); |
|
|
|
|
void remove(AbstractFeature<dimensions, T>& feature); |
|
|
|
|
void add(AbstractFeature<dimensions, T>& feature); |
|
|
|
|
void remove(AbstractFeature<dimensions, T>& feature); |
|
|
|
|
|
|
|
|
|
std::vector<std::reference_wrapper<AbstractFeature<dimensions, T>>> _features; |
|
|
|
|
std::vector<std::reference_wrapper<AbstractFeature<dimensions, T>>> _features; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|