mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-07-01 13:56:06 -04:00
--User changes
-Allow for continuous update during interactive rendering. --Code changes -Make some variation related functions const where appropriate. -Use auto keyword more.
This commit is contained in:
@ -879,8 +879,8 @@ public:
|
||||
|
||||
if (tempParVar != nullptr && (parVar->ParamCount() == tempParVar->ParamCount()))//This check will should always be true, but just check to be absolutely sure to avoid clobbering memory.
|
||||
{
|
||||
ParamWithName<T>* params = parVar->Params();
|
||||
ParamWithName<T>* tempParams = tempParVar->Params();
|
||||
auto params = parVar->Params();
|
||||
auto tempParams = tempParVar->Params();
|
||||
|
||||
for (l = 0; l < parVar->ParamCount(); l++)
|
||||
{
|
||||
|
@ -529,7 +529,7 @@ private:
|
||||
|
||||
if (parVar)
|
||||
{
|
||||
ParamWithName<T>* params = parVar->Params();
|
||||
auto params = parVar->Params();
|
||||
|
||||
for (j = 0; j < parVar->ParamCount(); j++)
|
||||
{
|
||||
|
@ -547,18 +547,18 @@ public:
|
||||
if (second != nullptr && first.size() == c.size())
|
||||
{
|
||||
second->Clear();
|
||||
ParamWithName<T>* secondParams = second->Params();
|
||||
auto secondParams = second->Params();
|
||||
|
||||
//Iterate through each of the source variations.
|
||||
for (size_t i = 0; i < first.size(); i++)
|
||||
{
|
||||
ParametricVariation<T>* firstVar = first[i];
|
||||
auto firstVar = first[i];
|
||||
|
||||
//Make sure the source variation at this index is the same type as the variation being written to.
|
||||
if (firstVar->VariationId() == second->VariationId())
|
||||
{
|
||||
size_t size = firstVar->ParamCount();
|
||||
ParamWithName<T>* firstParams = firstVar->Params();
|
||||
auto firstParams = firstVar->Params();
|
||||
|
||||
//Multiply each parameter of the variation at this index by the coefficient at this index, and add
|
||||
//the result to the corresponding parameter in second.
|
||||
|
@ -607,7 +607,9 @@ FilterAndAccum:
|
||||
AccumOnly:
|
||||
if (m_ProcessState == FILTER_DONE || forceOutput)
|
||||
{
|
||||
if (m_Callback && !m_Callback->ProgressFunc(m_Ember, m_ProgressParameter, 0, 2, 0))//Original only allowed stages 0 and 1. Add 2 to mean final accum.
|
||||
//Original only allowed stages 0 and 1. Add 2 to mean final accum.
|
||||
//Do not update state/progress on forced output because it will be immediately overwritten.
|
||||
if (m_Callback && !forceOutput && !m_Callback->ProgressFunc(m_Ember, m_ProgressParameter, 0, 2, 0))
|
||||
{
|
||||
Abort();
|
||||
success = RENDER_ABORT;
|
||||
|
@ -1232,7 +1232,7 @@ public:
|
||||
/// Abstract copy function. Derived classes must implement.
|
||||
/// </summary>
|
||||
/// <returns>A copy of this object</returns>
|
||||
virtual Variation<T>* Copy() = 0;
|
||||
virtual Variation<T>* Copy() const = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Create a new Variation<float>, store it in the pointer reference passed in and
|
||||
@ -1695,7 +1695,7 @@ public:
|
||||
/// </summary>
|
||||
/// <param name="name">The name to search for</param>
|
||||
/// <returns>A pointer to the parameter value if the name matched, else false.</returns>
|
||||
T* GetParam(const char* name)
|
||||
T* GetParam(const char* name) const
|
||||
{
|
||||
for (auto& param : m_Params)
|
||||
if (!_stricmp(param.Name().c_str(), name))
|
||||
@ -1825,8 +1825,8 @@ public:
|
||||
/// <summary>
|
||||
/// Accessors.
|
||||
/// </summary>
|
||||
ParamWithName<T>* Params() { return &m_Params[0]; }
|
||||
size_t ParamCount() { return m_Params.size(); }
|
||||
const ParamWithName<T>* Params() const { return &m_Params[0]; }
|
||||
size_t ParamCount() const { return m_Params.size(); }
|
||||
const vector<ParamWithName<T>>& ParamsVec() const { return m_Params; }
|
||||
|
||||
protected:
|
||||
@ -1898,7 +1898,7 @@ protected:
|
||||
{ \
|
||||
} \
|
||||
\
|
||||
virtual Variation<T>* Copy() override \
|
||||
virtual Variation<T>* Copy() const override \
|
||||
{ \
|
||||
return new name<T>(*this); \
|
||||
} \
|
||||
@ -1925,7 +1925,7 @@ protected:
|
||||
{ \
|
||||
} \
|
||||
\
|
||||
virtual Variation<T>* Copy() override \
|
||||
virtual Variation<T>* Copy() const override \
|
||||
{ \
|
||||
return new name<T>(*this); \
|
||||
} \
|
||||
@ -2011,7 +2011,7 @@ protected:
|
||||
CopyParamVals(var.ParamsVec()); /* Copy values from var's vector and precalc. */ \
|
||||
} \
|
||||
\
|
||||
virtual Variation<T>* Copy() override \
|
||||
virtual Variation<T>* Copy() const override \
|
||||
{ \
|
||||
return new name<T>(*this); \
|
||||
} \
|
||||
@ -2042,7 +2042,7 @@ protected:
|
||||
CopyParamVals(var.ParamsVec()); /* Copy values from var's vector and precalc. */ \
|
||||
} \
|
||||
\
|
||||
virtual Variation<T>* Copy() override \
|
||||
virtual Variation<T>* Copy() const override \
|
||||
{ \
|
||||
return new name<T>(*this); \
|
||||
} \
|
||||
|
@ -375,7 +375,7 @@ public:
|
||||
/// </summary>
|
||||
/// <param name="index">The index in the list to retrieve</param>
|
||||
/// <returns>A pointer to the variation at the index if in range, else nullptr.</returns>
|
||||
Variation<T>* GetVariation(size_t index) { return index < m_Variations.size() ? m_Variations[index] : nullptr; }
|
||||
const Variation<T>* GetVariation(size_t index) const { return index < m_Variations.size() ? m_Variations[index] : nullptr; }
|
||||
|
||||
/// <summary>
|
||||
/// Get a pointer to the variation of a specified type at the specified index.
|
||||
@ -383,7 +383,7 @@ public:
|
||||
/// <param name="index">The index in the list to retrieve</param>
|
||||
/// <param name="varType">The type of variation to retrieve</param>
|
||||
/// <returns>A pointer to the variation of the specified type at the index if in range, else nullptr.</returns>
|
||||
Variation<T>* GetVariation(size_t index, eVariationType varType)
|
||||
const Variation<T>* GetVariation(size_t index, eVariationType varType) const
|
||||
{
|
||||
if (varType == VARTYPE_REG)
|
||||
return index < m_RegVariations.size() ? m_RegVariations[index] : nullptr;
|
||||
@ -402,15 +402,15 @@ public:
|
||||
/// <param name="index">The index in the list to make a copy of</param>
|
||||
/// <param name="weight">The weight to assign the new copy. Default: 1</param>
|
||||
/// <returns>A pointer to the variation at the index if in range, else nullptr.</returns>
|
||||
Variation<T>* GetVariationCopy(size_t index, T weight = 1) { return MakeCopyWithWeight(GetVariation(index), weight); }
|
||||
Variation<T>* GetVariationCopy(size_t index, eVariationType varType, T weight = 1) { return MakeCopyWithWeight(GetVariation(index, varType), weight); }
|
||||
Variation<T>* GetVariationCopy(size_t index, T weight = 1) const { return MakeCopyWithWeight(GetVariation(index), weight); }
|
||||
Variation<T>* GetVariationCopy(size_t index, eVariationType varType, T weight = 1) const { return MakeCopyWithWeight(GetVariation(index, varType), weight); }
|
||||
|
||||
/// <summary>
|
||||
/// Get a pointer to the variation with the specified ID.
|
||||
/// </summary>
|
||||
/// <param name="id">The ID to search for</param>
|
||||
/// <returns>A pointer to the variation if found, else nullptr.</returns>
|
||||
Variation<T>* GetVariation(eVariationId id)
|
||||
const Variation<T>* GetVariation(eVariationId id) const
|
||||
{
|
||||
for (uint i = 0; i < m_Variations.size() && m_Variations[i] != nullptr; i++)
|
||||
if (id == m_Variations[i]->VariationId())
|
||||
@ -426,14 +426,14 @@ public:
|
||||
/// <param name="id">The id of the variation in the list to make a copy of</param>
|
||||
/// <param name="weight">The weight to assign the new copy. Default: 1</param>
|
||||
/// <returns>A pointer to the variation with a matching ID, else nullptr.</returns>
|
||||
Variation<T>* GetVariationCopy(eVariationId id, T weight = 1) { return MakeCopyWithWeight(GetVariation(id), weight); }
|
||||
Variation<T>* GetVariationCopy(eVariationId id, T weight = 1) const { return MakeCopyWithWeight(GetVariation(id), weight); }
|
||||
|
||||
/// <summary>
|
||||
/// Get a pointer to the variation with the specified name.
|
||||
/// </summary>
|
||||
/// <param name="name">The name to search for</param>
|
||||
/// <returns>A pointer to the variation if found, else nullptr.</returns>
|
||||
Variation<T>* GetVariation(const string& name)
|
||||
const Variation<T>* GetVariation(const string& name) const
|
||||
{
|
||||
for (uint i = 0; i < m_Variations.size() && m_Variations[i] != nullptr; i++)
|
||||
if (!_stricmp(name.c_str(), m_Variations[i]->Name().c_str()))
|
||||
@ -449,7 +449,7 @@ public:
|
||||
/// <param name="name">The name of the variation in the list to make a copy of</param>
|
||||
/// <param name="weight">The weight to assign the new copy. Default: 1</param>
|
||||
/// <returns>A pointer to the variation with a matching name, else nullptr.</returns>
|
||||
Variation<T>* GetVariationCopy(const string& name, T weight = 1) { return MakeCopyWithWeight(GetVariation(name), weight); }
|
||||
Variation<T>* GetVariationCopy(const string& name, T weight = 1) const { return MakeCopyWithWeight(GetVariation(name), weight); }
|
||||
|
||||
/// <summary>
|
||||
/// Get a parametric variation at the specified index.
|
||||
@ -457,14 +457,14 @@ public:
|
||||
/// </summary>
|
||||
/// <param name="index">The index in the parametric variations list to retrieve</param>
|
||||
/// <returns>The parametric variation at the index specified if in range, else nullptr.</returns>
|
||||
ParametricVariation<T>* GetParametricVariation(size_t index) { return index < m_ParametricVariations.size() ? m_ParametricVariations[index] : nullptr; }
|
||||
const ParametricVariation<T>* GetParametricVariation(size_t index) const { return index < m_ParametricVariations.size() ? m_ParametricVariations[index] : nullptr; }
|
||||
|
||||
/// <summary>
|
||||
/// Get a parametric variation with the specified name.
|
||||
/// </summary>
|
||||
/// <param name="name">The name of the variation in the parametric variations list to retrieve</param>
|
||||
/// <returns>The parametric variation with a matching name, else nullptr.</returns>
|
||||
ParametricVariation<T>* GetParametricVariation(const string& name)
|
||||
const ParametricVariation<T>* GetParametricVariation(const string& name) const
|
||||
{
|
||||
for (uint i = 0; i < m_ParametricVariations.size() && m_ParametricVariations[i] != nullptr; i++)
|
||||
if (!_stricmp(name.c_str(), m_ParametricVariations[i]->Name().c_str()))
|
||||
@ -490,11 +490,11 @@ public:
|
||||
/// <summary>
|
||||
/// Accessors.
|
||||
/// </summary>
|
||||
size_t Size() { return m_Variations.size(); }
|
||||
size_t RegSize() { return m_RegVariations.size(); }
|
||||
size_t PreSize() { return m_PreVariations.size(); }
|
||||
size_t PostSize() { return m_PostVariations.size(); }
|
||||
size_t ParametricSize() { return m_ParametricVariations.size(); }
|
||||
size_t Size() const { return m_Variations.size(); }
|
||||
size_t RegSize() const { return m_RegVariations.size(); }
|
||||
size_t PreSize() const { return m_PreVariations.size(); }
|
||||
size_t PostSize() const { return m_PostVariations.size(); }
|
||||
size_t ParametricSize() const { return m_ParametricVariations.size(); }
|
||||
|
||||
private:
|
||||
/// <summary>
|
||||
@ -504,7 +504,7 @@ private:
|
||||
/// <param name="var">The variation to copy</param>
|
||||
/// <param name="weight">The weight to assign it</param>
|
||||
/// <returns>A pointer to the new variation copy if success, else nullptr.</returns>
|
||||
Variation<T>* MakeCopyWithWeight(Variation<T>* var, T weight)
|
||||
Variation<T>* MakeCopyWithWeight(const Variation<T>* var, T weight) const
|
||||
{
|
||||
if (var)
|
||||
{
|
||||
|
@ -766,9 +766,9 @@ public:
|
||||
//Now apply the motion func to the params if needed.
|
||||
if (motParVar != nullptr)
|
||||
{
|
||||
ParametricVariation<T>* parVar = dynamic_cast<ParametricVariation<T>*>(var);
|
||||
ParamWithName<T>* params = parVar->Params();
|
||||
ParamWithName<T>* motParams = motParVar->Params();
|
||||
auto parVar = dynamic_cast<ParametricVariation<T>*>(var);
|
||||
auto params = parVar->Params();
|
||||
auto motParams = motParVar->Params();
|
||||
|
||||
for (size_t k = 0; k < motParVar->ParamCount(); k++)
|
||||
{
|
||||
|
@ -1154,9 +1154,9 @@ private:
|
||||
//Only correct names if it came from an outside source. Names originating from this library are always considered correct.
|
||||
string s = fromEmber ? string(CCX(curAtt->name)) : GetCorrectedVariationName(m_BadVariationNames, curAtt);
|
||||
|
||||
if (Variation<T>* var = m_VariationList.GetVariation(s))
|
||||
if (auto var = m_VariationList.GetVariation(s))
|
||||
{
|
||||
Variation<T>* varCopy = var->Copy();
|
||||
auto varCopy = var->Copy();
|
||||
|
||||
Atof(attStr, varCopy->m_Weight);
|
||||
xform.AddVariation(varCopy);
|
||||
|
Reference in New Issue
Block a user