mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-02-01 18:40:12 -05:00
5aec58b4a2
-Add new options to EmberGenome to better help assess which variations have certain characteristics. The options are: --sumvars: Display the names of all regular variations which have the default behavior of summing their outputs and exit. --assignvars: Display the names of all regular variations which have the non-standard behavior of assigning their outputs and exit. --ppsumvars: Display the names of all pre/post variations which have the non-standard behavior of summing their outputs and exit. --ppassignvars: Display the names of all pre/post variations which have the default behavior of assigning their outputs and exit. --dcvars: Display the names of all variations which use direct coloring and exit. --parvars: Display the names of all variations which have parameters and exit. --nonparvars: Display the names of all variations which do not have parameters (weight only) and exit. --Code changes -Make VariationList vectors have const elements since no callers should ever change them. -Add new function to VariationList to retrieve a const ref to the parametric variations. -Move some search functions out of EmberTester and into EmberCommon.h. -General code cleanup.
64 lines
2.6 KiB
C++
64 lines
2.6 KiB
C++
#pragma once
|
|
|
|
#include "Variation.h"
|
|
|
|
/// <summary>
|
|
/// VariationList class.
|
|
/// </summary>
|
|
|
|
namespace EmberNs
|
|
{
|
|
/// <summary>
|
|
/// Since the list of variations is numerous, it's convenient to be able to make copies
|
|
/// of specific ones. This class holds a list of pointers to variation objects for every
|
|
/// variation available. Similar to the PaletteList class, a caller can look up a variation
|
|
/// by name or ID and retrieve a copy of it.
|
|
/// This class follows the singleton pattern.
|
|
/// All variations are deleted upon destruction.
|
|
/// Template argument expected to be float or double.
|
|
/// </summary>
|
|
template <typename T>
|
|
class EMBER_API VariationList: public Singleton<VariationList<T>>
|
|
{
|
|
public:
|
|
const Variation<T>* GetVariation(size_t index) const;
|
|
const Variation<T>* GetVariation(size_t index, eVariationType varType) const;
|
|
Variation<T>* GetVariationCopy(size_t index, T weight = 1) const;
|
|
Variation<T>* GetVariationCopy(size_t index, eVariationType varType, T weight = 1) const;
|
|
const Variation<T>* GetVariation(eVariationId id) const;
|
|
Variation<T>* GetVariationCopy(eVariationId id, T weight = 1) const;
|
|
const Variation<T>* GetVariation(const string& name) const;
|
|
Variation<T>* GetVariationCopy(const string& name, T weight = 1) const;
|
|
const ParametricVariation<T>* GetParametricVariation(size_t index) const;
|
|
const ParametricVariation<T>* GetParametricVariation(const string& name) const;
|
|
ParametricVariation<T>* GetParametricVariationCopy(eVariationId id, T weight = 1) const;
|
|
int GetVariationIndex(const string& name) const;
|
|
size_t Size() const;
|
|
size_t RegSize() const;
|
|
size_t PreSize() const;
|
|
size_t PostSize() const;
|
|
size_t ParametricSize() const;
|
|
size_t NonParametricSize() const;
|
|
|
|
const vector<const Variation<T>*>& AllVars() const;
|
|
const vector<const Variation<T>*>& RegVars() const;
|
|
const vector<const Variation<T>*>& PreVars() const;
|
|
const vector<const Variation<T>*>& PostVars() const;
|
|
const vector<const Variation<T>*>& NonParametricVariations() const;
|
|
const vector<const ParametricVariation<T>*>& ParametricVariations() const;
|
|
|
|
SINGLETON_DERIVED_DECL(VariationList<T>);
|
|
|
|
private:
|
|
VariationList();
|
|
Variation<T>* MakeCopyWithWeight(const Variation<T>* var, T weight) const;
|
|
|
|
vector<const Variation<T>*> m_Variations;//A list of pointers to dynamically allocated variation objects.
|
|
vector<const Variation<T>*> m_RegVariations;
|
|
vector<const Variation<T>*> m_PreVariations;
|
|
vector<const Variation<T>*> m_PostVariations;
|
|
vector<const Variation<T>*> m_NonParametricVariations;
|
|
vector<const ParametricVariation<T>*> m_ParametricVariations;//A list of pointers to elements in m_Variations which are derived from ParametricVariation.
|
|
};
|
|
}
|