Changeset 23351 for branches/cnb_branches/cnb_branch_20090301/psModules/src/objects/pmSourceVisual.c
- Timestamp:
- Mar 17, 2009, 12:07:42 PM (17 years ago)
- Location:
- branches/cnb_branches/cnb_branch_20090301/psModules
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
src/objects/pmSourceVisual.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/cnb_branches/cnb_branch_20090301/psModules
-
Property svn:mergeinfo
set to (toggle deleted branches)
/branches/cnb_branches/cnb_branch_20090215/psModules merged eligible /trunk/psModules merged eligible /branches/cnb_branch_20090215/psModules 21495-22685 /branches/eam_branches/eam_branch_20090303/psModules 23158-23228
-
Property svn:mergeinfo
set to (toggle deleted branches)
-
branches/cnb_branches/cnb_branch_20090301/psModules/src/objects/pmSourceVisual.c
r21183 r23351 7 7 #include "pmSourceVisual.h" 8 8 9 # if (HAVE_KAPA) 10 # include <kapa.h> 9 #if (HAVE_KAPA) 10 #include <kapa.h> 11 #include "pmVisual.h" 11 12 12 13 // functions used to visualize the analysis as it goes 13 14 // these are invoked by the -visual options 14 15 15 static bool isVisual = false;16 16 static int kapa1 = -1; 17 static bool plotPSF = true; 17 18 // static int kapa2 = -1; 18 19 // static int kapa3 = -1; 19 20 21 bool pmSourceVisualClose() { 22 if (kapa1 != -1) 23 KiiClose(kapa1); 24 return true; 25 } 26 20 27 bool pmSourcePlotPoints3D (int myKapa, Graphdata *graphdata, psVector *xn, psVector *yn, psVector *zn, float theta, float phi); 21 28 22 bool pmSourceSetVisual (bool mode) {23 24 isVisual = mode;25 return true;26 }27 29 28 30 bool pmSourceVisualPSFModelResid (pmTrend2D *trend, psVector *x, psVector *y, psVector *param, psVector *mask) { 29 31 30 KapaSection section; // put the positive profile in one and the residuals in another? 32 KapaSection section; // put the positive profile in one and the residuals in another? 31 33 32 34 Graphdata graphdata; 33 35 34 if (! isVisual) return true;36 if (!pmVisualIsVisual() || !plotPSF) return true; 35 37 36 38 if (kapa1 == -1) { 37 39 kapa1 = KapaOpenNamedSocket ("kapa", "pmSource:plots"); 38 if (kapa1 == -1) {39 fprintf (stderr, "failure to open kapa; visual mode disabled\n");40 isVisual = false;41 return false;42 }43 } 40 if (kapa1 == -1) { 41 fprintf (stderr, "failure to open kapa; visual mode disabled\n"); 42 pmVisualSetVisual(false); 43 return false; 44 } 45 } 44 46 45 47 KapaClearPlots (kapa1); … … 55 57 56 58 for (int i = 0; i < x->n; i++) { 57 model->data.F32[i] = pmTrend2DEval (trend, x->data.F32[i], y->data.F32[i]);58 resid->data.F32[i] = param->data.F32[i] - model->data.F32[i];59 if (mask->data.PS_TYPE_VECTOR_MASK_DATA[i]) continue;60 min = PS_MIN (min, resid->data.F32[i]);61 max = PS_MAX (max, resid->data.F32[i]);62 Min = PS_MIN (min, param->data.F32[i]);63 Max = PS_MAX (max, param->data.F32[i]);59 model->data.F32[i] = pmTrend2DEval (trend, x->data.F32[i], y->data.F32[i]); 60 resid->data.F32[i] = param->data.F32[i] - model->data.F32[i]; 61 if (mask->data.PS_TYPE_VECTOR_MASK_DATA[i]) continue; 62 min = PS_MIN (min, resid->data.F32[i]); 63 max = PS_MAX (max, resid->data.F32[i]); 64 Min = PS_MIN (min, param->data.F32[i]); 65 Max = PS_MAX (max, param->data.F32[i]); 64 66 } 65 67 … … 70 72 psVector *Fn = psVectorAlloc (x->n, PS_TYPE_F32); 71 73 for (int i = 0; i < x->n; i++) { 72 xn->data.F32[i] = x->data.F32[i] / 5000.0;73 yn->data.F32[i] = y->data.F32[i] / 5000.0;74 zn->data.F32[i] = (resid->data.F32[i] - min) / (max - min);75 Zn->data.F32[i] = (param->data.F32[i] - Min) / (Max - Min);76 Fn->data.F32[i] = (model->data.F32[i] - Min) / (Max - Min);74 xn->data.F32[i] = x->data.F32[i] / 5000.0; 75 yn->data.F32[i] = y->data.F32[i] / 5000.0; 76 zn->data.F32[i] = (resid->data.F32[i] - min) / (max - min); 77 Zn->data.F32[i] = (param->data.F32[i] - Min) / (Max - Min); 78 Fn->data.F32[i] = (model->data.F32[i] - Min) / (Max - Min); 77 79 } 78 80 … … 152 154 // pause and wait for user input: 153 155 // continue, save (provide name), ?? 154 char key[10]; 155 fprintf (stdout, "[c]ontinue? "); 156 if (!fgets(key, 8, stdin)) { 157 psWarning("Unable to read option"); 158 } 156 pmVisualAskUser(&plotPSF); 157 159 158 return true; 160 159 } … … 173 172 174 173 for (int i = 0; i < xn->n; i++) { 175 xv->data.F32[2*i+0] = +xn->data.F32[i]*cos(theta) + yn->data.F32[i]*sin(theta)*cos(phi) + zn->data.F32[i]*sin(theta)*sin(phi);176 yv->data.F32[2*i+0] = -xn->data.F32[i]*sin(theta) + yn->data.F32[i]*cos(theta)*cos(phi) + zn->data.F32[i]*cos(theta)*sin(phi);177 zv->data.F32[2*i+0] = -yn->data.F32[i]*sin(phi) + zn->data.F32[i]*cos(phi);178 xv->data.F32[2*i+1] = +xn->data.F32[i]*cos(theta) + yn->data.F32[i]*sin(theta)*cos(phi);179 yv->data.F32[2*i+1] = -xn->data.F32[i]*sin(theta) + yn->data.F32[i]*cos(theta)*cos(phi);180 zv->data.F32[2*i+1] = -yn->data.F32[i]*sin(phi);181 graphdata->xmin = PS_MIN(graphdata->xmin, xv->data.F32[2*i+0]);182 graphdata->xmax = PS_MAX(graphdata->xmax, xv->data.F32[2*i+0]);183 graphdata->ymin = PS_MIN(graphdata->ymin, zv->data.F32[2*i+0]);184 graphdata->ymax = PS_MAX(graphdata->ymax, zv->data.F32[2*i+0]);185 graphdata->xmin = PS_MIN(graphdata->xmin, xv->data.F32[2*i+1]);186 graphdata->xmax = PS_MAX(graphdata->xmax, xv->data.F32[2*i+1]);187 graphdata->ymin = PS_MIN(graphdata->ymin, zv->data.F32[2*i+1]);188 graphdata->ymax = PS_MAX(graphdata->ymax, zv->data.F32[2*i+1]);174 xv->data.F32[2*i+0] = +xn->data.F32[i]*cos(theta) + yn->data.F32[i]*sin(theta)*cos(phi) + zn->data.F32[i]*sin(theta)*sin(phi); 175 yv->data.F32[2*i+0] = -xn->data.F32[i]*sin(theta) + yn->data.F32[i]*cos(theta)*cos(phi) + zn->data.F32[i]*cos(theta)*sin(phi); 176 zv->data.F32[2*i+0] = -yn->data.F32[i]*sin(phi) + zn->data.F32[i]*cos(phi); 177 xv->data.F32[2*i+1] = +xn->data.F32[i]*cos(theta) + yn->data.F32[i]*sin(theta)*cos(phi); 178 yv->data.F32[2*i+1] = -xn->data.F32[i]*sin(theta) + yn->data.F32[i]*cos(theta)*cos(phi); 179 zv->data.F32[2*i+1] = -yn->data.F32[i]*sin(phi); 180 graphdata->xmin = PS_MIN(graphdata->xmin, xv->data.F32[2*i+0]); 181 graphdata->xmax = PS_MAX(graphdata->xmax, xv->data.F32[2*i+0]); 182 graphdata->ymin = PS_MIN(graphdata->ymin, zv->data.F32[2*i+0]); 183 graphdata->ymax = PS_MAX(graphdata->ymax, zv->data.F32[2*i+0]); 184 graphdata->xmin = PS_MIN(graphdata->xmin, xv->data.F32[2*i+1]); 185 graphdata->xmax = PS_MAX(graphdata->xmax, xv->data.F32[2*i+1]); 186 graphdata->ymin = PS_MIN(graphdata->ymin, zv->data.F32[2*i+1]); 187 graphdata->ymax = PS_MAX(graphdata->ymax, zv->data.F32[2*i+1]); 189 188 } 190 189 xv->n = xn->n; … … 253 252 } 254 253 255 # else 256 # endif 254 #else 255 256 bool pmSourceSetVisual(bool mode) 257 { 258 return true; 259 } 260 261 bool pmSourceVisualPSFModelResid(pmTrend2D *trend, psVector *x, psVector *y, psVector *param, psVector *mask) 262 { 263 return true; 264 } 265 266 #endif
Note:
See TracChangeset
for help on using the changeset viewer.
