From 208370778f7dadee33588bdb647857f4dd023d3d Mon Sep 17 00:00:00 2001 From: w1z7ard Date: Mon, 3 Sep 2007 22:47:09 +0000 Subject: [PATCH] added debugging for n value git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/trunk@395 6778bc44-b910-0410-a7a0-be141de4315d --- src/projectM-engine/CustomWave.cpp | 6 ++++-- src/projectM-engine/Expr.cpp | 1 + src/projectM-engine/PerPointEqn.cpp | 14 ++++++++------ src/projectM-engine/PerPointEqn.hpp | 2 +- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/projectM-engine/CustomWave.cpp b/src/projectM-engine/CustomWave.cpp index 2d77dcf23..3b0173181 100755 --- a/src/projectM-engine/CustomWave.cpp +++ b/src/projectM-engine/CustomWave.cpp @@ -556,8 +556,10 @@ void CustomWave::evalPerPointEqns() y_mesh[k] = y; /* Evaluate per pixel equations */ - for (std::map::iterator pos = per_point_eqn_tree.begin(); pos != per_point_eqn_tree.end();++pos) - pos->second->evaluate(); + for (std::map::iterator pos = per_point_eqn_tree.begin(); pos != per_point_eqn_tree.end();++pos) { + for (k = 0; k < samples;k++) + pos->second->evaluate(k); + } } diff --git a/src/projectM-engine/Expr.cpp b/src/projectM-engine/Expr.cpp index ebc10ff23..56efc7072 100755 --- a/src/projectM-engine/Expr.cpp +++ b/src/projectM-engine/Expr.cpp @@ -128,6 +128,7 @@ float ValExpr::eval_val_expr ( int mesh_i, int mesh_j ) return ( float ) ( * ( ( int* ) ( term.param->engine_val ) ) ); case P_TYPE_DOUBLE: + if ( term.param->matrix_flag | ( term.param->flags & P_FLAG_ALWAYS_MATRIX ) ) { diff --git a/src/projectM-engine/PerPointEqn.cpp b/src/projectM-engine/PerPointEqn.cpp index 105fd8db2..630172cb5 100755 --- a/src/projectM-engine/PerPointEqn.cpp +++ b/src/projectM-engine/PerPointEqn.cpp @@ -35,11 +35,11 @@ #include "PerPixelEqn.hpp" #include "PerPointEqn.hpp" #include - +#include #include "wipemalloc.h" /* Evaluates a per point equation for the current custom wave given by interface_wave ptr */ -void PerPointEqn::evaluate() +void PerPointEqn::evaluate(int i) { int size; @@ -53,18 +53,20 @@ void PerPointEqn::evaluate() if (param->matrix == NULL) { assert(param->matrix_flag == false); - (*(float*)param->engine_val) = eqn_ptr->eval_gen_expr(-1,-1); + (*(float*)param->engine_val) = eqn_ptr->eval_gen_expr(i,-1); + + if (param->name == "n") + std::cerr << "n=" << (*(float*)param->engine_val) << std::endl; return; } else { param_matrix = (float*)param->matrix; - for (int i = 0; i < samples; i++) - { + // -1 is because per points only use one dimension param_matrix[i] = eqn_ptr->eval_gen_expr(i, -1); - } + /* Now that this parameter has been referenced with a per point equation, we let the evaluator know by setting diff --git a/src/projectM-engine/PerPointEqn.hpp b/src/projectM-engine/PerPointEqn.hpp index a25fbd804..90ba5ca1c 100755 --- a/src/projectM-engine/PerPointEqn.hpp +++ b/src/projectM-engine/PerPointEqn.hpp @@ -41,7 +41,7 @@ public: Param *param; GenExpr * gen_expr; ~PerPointEqn(); - void evaluate(); + void evaluate(int i); PerPointEqn( int index, Param *param, GenExpr *gen_expr, int samples); };