mirror of
https://github.com/projectM-visualizer/projectm.git
synced 2026-03-13 19:05:26 +00:00
changed most unneccessary maps to vectors
git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/trunk@552 6778bc44-b910-0410-a7a0-be141de4315d
This commit is contained in:
@ -20,6 +20,20 @@ namespace Algorithms
|
||||
}
|
||||
|
||||
|
||||
template <class TraverseFunctor, class Container>
|
||||
void traverseVector(Container & container)
|
||||
{
|
||||
|
||||
TraverseFunctor functor;
|
||||
|
||||
for (typename Container::iterator pos = container.begin(); pos != container.end(); ++pos)
|
||||
{
|
||||
assert(*pos);
|
||||
functor(*pos);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
template <class TraverseFunctor, class Container>
|
||||
void traverse(Container & container, TraverseFunctor & functor)
|
||||
{
|
||||
|
||||
@ -264,7 +264,7 @@ CustomShape::CustomShape ( int id ) : imageUrl("")
|
||||
CustomShape::~CustomShape()
|
||||
{
|
||||
|
||||
traverse<TraverseFunctors::DeleteFunctor<PerFrameEqn> > ( per_frame_eqn_tree );
|
||||
traverseVector<TraverseFunctors::DeleteFunctor<PerFrameEqn> > ( per_frame_eqn_tree );
|
||||
traverse<TraverseFunctors::DeleteFunctor<InitCond> > ( init_cond_tree );
|
||||
traverse<TraverseFunctors::DeleteFunctor<Param> > ( param_tree );
|
||||
traverse<TraverseFunctors::DeleteFunctor<InitCond> > ( per_frame_init_eqn_tree );
|
||||
|
||||
@ -34,6 +34,7 @@
|
||||
#include "Param.hpp"
|
||||
#include "PerFrameEqn.hpp"
|
||||
#include "InitCond.hpp"
|
||||
#include <vector>
|
||||
|
||||
class Preset;
|
||||
|
||||
@ -109,7 +110,7 @@ public:
|
||||
/* Data structure to hold per frame / per frame init equations */
|
||||
|
||||
std::map<std::string,InitCond*> init_cond_tree;
|
||||
std::map<int, PerFrameEqn*> per_frame_eqn_tree;
|
||||
std::vector<PerFrameEqn*> per_frame_eqn_tree;
|
||||
std::map<std::string,InitCond*> per_frame_init_eqn_tree;
|
||||
std::map<std::string, Param*> text_properties_tree;
|
||||
|
||||
|
||||
@ -480,8 +480,8 @@ CustomWave::~CustomWave()
|
||||
for (std::vector<PerPointEqn*>::iterator pos = per_point_eqn_tree.begin(); pos != per_point_eqn_tree.end(); ++pos)
|
||||
delete(*pos);
|
||||
|
||||
for (std::map<int, PerFrameEqn*>::iterator pos = per_frame_eqn_tree.begin(); pos != per_frame_eqn_tree.end(); ++pos)
|
||||
delete(pos->second);
|
||||
for (std::vector<PerFrameEqn*>::iterator pos = per_frame_eqn_tree.begin(); pos != per_frame_eqn_tree.end(); ++pos)
|
||||
delete(*pos);
|
||||
|
||||
for (std::map<std::string, InitCond*>::iterator pos = init_cond_tree.begin(); pos != init_cond_tree.end(); ++pos)
|
||||
delete(pos->second);
|
||||
|
||||
@ -117,7 +117,7 @@ public:
|
||||
|
||||
/* Data structures to hold per frame and per point equations */
|
||||
std::map<std::string,InitCond*> init_cond_tree;
|
||||
std::map<int, PerFrameEqn*> per_frame_eqn_tree;
|
||||
std::vector<PerFrameEqn*> per_frame_eqn_tree;
|
||||
std::vector<PerPointEqn*> per_point_eqn_tree;
|
||||
std::map<std::string,InitCond*> per_frame_init_eqn_tree;
|
||||
|
||||
|
||||
@ -522,7 +522,7 @@ int Parser::parse_line(std::istream & fs, Preset * preset)
|
||||
}
|
||||
|
||||
/* Insert the equation in the per frame equation tree */
|
||||
preset->per_frame_eqn_tree.insert(std::make_pair(per_frame_eqn_count, per_frame_eqn));
|
||||
preset->per_frame_eqn_tree.push_back(per_frame_eqn);
|
||||
|
||||
if (update_string_buffer(preset->per_frame_eqn_string_buffer,
|
||||
&preset->per_frame_eqn_string_index) < 0)
|
||||
@ -625,7 +625,7 @@ int Parser::parse_line(std::istream & fs, Preset * preset)
|
||||
}
|
||||
|
||||
/* Insert the equation in the per frame equation tree */
|
||||
preset->per_frame_eqn_tree.insert(std::make_pair(per_frame_eqn_count, per_frame_eqn));
|
||||
preset->per_frame_eqn_tree.push_back(per_frame_eqn);
|
||||
|
||||
if (update_string_buffer(preset->per_frame_eqn_string_buffer,
|
||||
&preset->per_frame_eqn_string_index) < 0)
|
||||
@ -2195,7 +2195,7 @@ int Parser::parse_wave_helper(std::istream & fs, Preset * preset, int id, char
|
||||
return PROJECTM_FAILURE;
|
||||
}
|
||||
|
||||
custom_wave->per_frame_eqn_tree.insert(std::make_pair(per_frame_eqn->index, per_frame_eqn));
|
||||
custom_wave->per_frame_eqn_tree.push_back(per_frame_eqn);
|
||||
if (PARSE_DEBUG) printf("parse_wave (per_frame): equation %d associated with custom wave %d [success]\n",
|
||||
per_frame_eqn->index, custom_wave->id);
|
||||
|
||||
@ -2480,7 +2480,7 @@ int Parser::parse_shape_per_frame_eqn(std::istream & fs, CustomShape * custom_sh
|
||||
return PROJECTM_FAILURE;
|
||||
}
|
||||
|
||||
custom_shape->per_frame_eqn_tree.insert(std::make_pair(per_frame_eqn->index, per_frame_eqn));
|
||||
custom_shape->per_frame_eqn_tree.push_back(per_frame_eqn);
|
||||
|
||||
/* Need to add stuff to string buffer so the editor can read the equations.
|
||||
Why not make a nice little helper function for this? - here it is: */
|
||||
@ -2546,7 +2546,7 @@ int Parser::parse_wave_per_frame_eqn(std::istream & fs, CustomWave * custom_wav
|
||||
return PROJECTM_FAILURE;
|
||||
}
|
||||
|
||||
custom_wave->per_frame_eqn_tree.insert(std::make_pair(per_frame_eqn->index, per_frame_eqn));
|
||||
custom_wave->per_frame_eqn_tree.push_back(per_frame_eqn);
|
||||
if (PARSE_DEBUG) printf("parse_wave (per_frame): equation %d associated with custom wave %d [success]\n",
|
||||
per_frame_eqn->index, custom_wave->id);
|
||||
|
||||
|
||||
@ -77,7 +77,7 @@ Preset::~Preset()
|
||||
|
||||
Algorithms::traverse<Algorithms::TraverseFunctors::DeleteFunctor<PerPixelEqn> >(per_pixel_eqn_tree);
|
||||
|
||||
Algorithms::traverse<Algorithms::TraverseFunctors::DeleteFunctor<PerFrameEqn> >(per_frame_eqn_tree);
|
||||
Algorithms::traverseVector<Algorithms::TraverseFunctors::DeleteFunctor<PerFrameEqn> >(per_frame_eqn_tree);
|
||||
|
||||
Algorithms::traverse<Algorithms::TraverseFunctors::DeleteFunctor<Param> >(user_param_tree);
|
||||
|
||||
@ -178,11 +178,10 @@ void Preset::evalCustomWavePerFrameEquations()
|
||||
_pos->second->evaluate();
|
||||
}
|
||||
|
||||
std::map<int, PerFrameEqn*> & per_frame_eqn_tree = (*pos)->per_frame_eqn_tree;
|
||||
for (std::map<int, PerFrameEqn*>::iterator _pos = per_frame_eqn_tree.begin(); _pos != per_frame_eqn_tree.end(); ++_pos)
|
||||
std::vector<PerFrameEqn*> & per_frame_eqn_tree = (*pos)->per_frame_eqn_tree;
|
||||
for (std::vector<PerFrameEqn*>::iterator _pos = per_frame_eqn_tree.begin(); _pos != per_frame_eqn_tree.end(); ++_pos)
|
||||
{
|
||||
assert(_pos->second);
|
||||
_pos->second->evaluate();
|
||||
(*_pos)->evaluate();
|
||||
}
|
||||
}
|
||||
|
||||
@ -201,11 +200,10 @@ void Preset::evalCustomShapePerFrameEquations()
|
||||
_pos->second->evaluate();
|
||||
}
|
||||
|
||||
std::map<int, PerFrameEqn*> & per_frame_eqn_tree = (*pos)->per_frame_eqn_tree;
|
||||
for (std::map<int, PerFrameEqn*>::iterator _pos = per_frame_eqn_tree.begin(); _pos != per_frame_eqn_tree.end(); ++_pos)
|
||||
std::vector<PerFrameEqn*> & per_frame_eqn_tree = (*pos)->per_frame_eqn_tree;
|
||||
for (std::vector<PerFrameEqn*>::iterator _pos = per_frame_eqn_tree.begin(); _pos != per_frame_eqn_tree.end(); ++_pos)
|
||||
{
|
||||
assert(_pos->second);
|
||||
_pos->second->evaluate();
|
||||
(*_pos)->evaluate();
|
||||
}
|
||||
}
|
||||
|
||||
@ -231,10 +229,9 @@ void Preset::evalPerFrameEquations()
|
||||
pos->second->evaluate();
|
||||
}
|
||||
|
||||
for (std::map<int, PerFrameEqn*>::iterator pos = per_frame_eqn_tree.begin(); pos != per_frame_eqn_tree.end(); ++pos)
|
||||
for (std::vector<PerFrameEqn*>::iterator pos = per_frame_eqn_tree.begin(); pos != per_frame_eqn_tree.end(); ++pos)
|
||||
{
|
||||
assert(pos->second);
|
||||
pos->second->evaluate();
|
||||
(*pos)->evaluate();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -140,7 +140,7 @@ public:
|
||||
|
||||
/// @bug encapsulate
|
||||
/* Data structures that contain equation and initial condition information */
|
||||
std::map<int, PerFrameEqn*> per_frame_eqn_tree; /* per frame equations */
|
||||
std::vector<PerFrameEqn*> per_frame_eqn_tree; /* per frame equations */
|
||||
std::map<int, PerPixelEqn*> per_pixel_eqn_tree; /* per pixel equation tree */
|
||||
std::map<std::string,InitCond*> per_frame_init_eqn_tree; /* per frame initial equations */
|
||||
std::map<std::string,InitCond*> init_cond_tree; /* initial conditions */
|
||||
|
||||
@ -83,6 +83,8 @@ private:
|
||||
float **origy2;
|
||||
int gx;
|
||||
int gy;
|
||||
|
||||
std::string m_presetName;
|
||||
|
||||
int vw;
|
||||
int vh;
|
||||
@ -98,7 +100,6 @@ private:
|
||||
|
||||
std::string title_fontURL;
|
||||
std::string menu_fontURL;
|
||||
std::string m_presetName;
|
||||
|
||||
void draw_waveform(PresetOutputs * presetOutputs);
|
||||
void Interpolation(PresetOutputs *presetOutputs, PresetInputs *presetInputs);
|
||||
|
||||
@ -69,7 +69,7 @@ double smoothDuration = 5;
|
||||
//int smoothFrame = 0;
|
||||
int oldFrame = 1;
|
||||
|
||||
DLLEXPORT projectM::projectM(int gx, int gy, int fps, int texsize, int width, int height, std::string preset_url,std::string title_fonturl, std::string title_menuurl) :renderer(0), presetURL(preset_url), title_fontURL(title_fonturl), menu_fontURL(menu_fontURL), smoothFrame(0), beatDetect ( 0 ) {
|
||||
DLLEXPORT projectM::projectM(int gx, int gy, int fps, int texsize, int width, int height, std::string preset_url,std::string title_fonturl, std::string title_menuurl) :beatDetect ( 0 ), renderer(0), presetURL(preset_url), title_fontURL(title_fonturl), menu_fontURL(menu_fontURL), smoothFrame(0) {
|
||||
presetURL = preset_url;
|
||||
projectM_reset();
|
||||
projectM_init(gx, gy, fps, texsize, width, height);
|
||||
@ -94,7 +94,7 @@ DLLEXPORT unsigned projectM::initRenderToTexture()
|
||||
}
|
||||
|
||||
DLLEXPORT projectM::projectM(std::string config_file) :
|
||||
renderer(0), smoothFrame(0), beatDetect ( 0 ) {
|
||||
beatDetect ( 0 ), renderer(0), smoothFrame(0) {
|
||||
|
||||
projectM_reset();
|
||||
readConfig(config_file);
|
||||
|
||||
Reference in New Issue
Block a user