- Timestamp:
- Feb 19, 2009, 7:59:50 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/cnb_branch_20090215/psModules/src/objects/pmSourceVisual.c
r21183 r21536 9 9 # if (HAVE_KAPA) 10 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 17 // static int kapa2 = -1; … … 20 20 bool pmSourcePlotPoints3D (int myKapa, Graphdata *graphdata, psVector *xn, psVector *yn, psVector *zn, float theta, float phi); 21 21 22 bool pmSourceSetVisual (bool mode) {23 24 isVisual = mode;25 return true;26 }27 22 28 23 bool pmSourceVisualPSFModelResid (pmTrend2D *trend, psVector *x, psVector *y, psVector *param, psVector *mask) { 29 24 30 KapaSection section; // put the positive profile in one and the residuals in another? 25 KapaSection section; // put the positive profile in one and the residuals in another? 31 26 32 27 Graphdata graphdata; 33 28 34 if (! isVisual) return true;29 if (!pmVisualIsVisual()) return true; 35 30 36 31 if (kapa1 == -1) { 37 32 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 } 33 if (kapa1 == -1) { 34 fprintf (stderr, "failure to open kapa; visual mode disabled\n"); 35 pmVisualSetVisual(false); 36 return false; 37 } 38 } 44 39 45 40 KapaClearPlots (kapa1); … … 55 50 56 51 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]);52 model->data.F32[i] = pmTrend2DEval (trend, x->data.F32[i], y->data.F32[i]); 53 resid->data.F32[i] = param->data.F32[i] - model->data.F32[i]; 54 if (mask->data.PS_TYPE_VECTOR_MASK_DATA[i]) continue; 55 min = PS_MIN (min, resid->data.F32[i]); 56 max = PS_MAX (max, resid->data.F32[i]); 57 Min = PS_MIN (min, param->data.F32[i]); 58 Max = PS_MAX (max, param->data.F32[i]); 64 59 } 65 60 … … 70 65 psVector *Fn = psVectorAlloc (x->n, PS_TYPE_F32); 71 66 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);67 xn->data.F32[i] = x->data.F32[i] / 5000.0; 68 yn->data.F32[i] = y->data.F32[i] / 5000.0; 69 zn->data.F32[i] = (resid->data.F32[i] - min) / (max - min); 70 Zn->data.F32[i] = (param->data.F32[i] - Min) / (Max - Min); 71 Fn->data.F32[i] = (model->data.F32[i] - Min) / (Max - Min); 77 72 } 78 73 … … 155 150 fprintf (stdout, "[c]ontinue? "); 156 151 if (!fgets(key, 8, stdin)) { 157 psWarning("Unable to read option");152 psWarning("Unable to read option"); 158 153 } 159 154 return true; … … 173 168 174 169 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]);170 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); 171 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); 172 zv->data.F32[2*i+0] = -yn->data.F32[i]*sin(phi) + zn->data.F32[i]*cos(phi); 173 xv->data.F32[2*i+1] = +xn->data.F32[i]*cos(theta) + yn->data.F32[i]*sin(theta)*cos(phi); 174 yv->data.F32[2*i+1] = -xn->data.F32[i]*sin(theta) + yn->data.F32[i]*cos(theta)*cos(phi); 175 zv->data.F32[2*i+1] = -yn->data.F32[i]*sin(phi); 176 graphdata->xmin = PS_MIN(graphdata->xmin, xv->data.F32[2*i+0]); 177 graphdata->xmax = PS_MAX(graphdata->xmax, xv->data.F32[2*i+0]); 178 graphdata->ymin = PS_MIN(graphdata->ymin, zv->data.F32[2*i+0]); 179 graphdata->ymax = PS_MAX(graphdata->ymax, zv->data.F32[2*i+0]); 180 graphdata->xmin = PS_MIN(graphdata->xmin, xv->data.F32[2*i+1]); 181 graphdata->xmax = PS_MAX(graphdata->xmax, xv->data.F32[2*i+1]); 182 graphdata->ymin = PS_MIN(graphdata->ymin, zv->data.F32[2*i+1]); 183 graphdata->ymax = PS_MAX(graphdata->ymax, zv->data.F32[2*i+1]); 189 184 } 190 185 xv->n = xn->n;
Note:
See TracChangeset
for help on using the changeset viewer.
