- v[2] = (1.0f-cos(v[0]*cyl_arc))*cyl_radius-monitor->cylinder_depth;
- v[0] = sin(v[0]*cyl_arc)*cyl_radius;
+ if(monitor->curvature_type==CYLINDRICAL)
+ {
+ v[2] = (1.0f-cos(v[0]*cyl_arc))*cyl_radius-monitor->curvature_depth;
+ v[0] = sin(v[0]*cyl_arc)*cyl_radius;
+ }
+ else if(monitor->curvature_type==SPHERICAL)
+ {
+ float r;
+
+ v[0] = tan(v[0]*cyl_arc)*cyl_radius;
+ v[1] = tan(v[1]*cyl_arc)*cyl_radius;
+ r = sqrt(v[0]*v[0]+v[1]*v[1]+cyl_radius*cyl_radius)/fabs(cyl_radius);
+ v[0] /= r;
+ v[1] /= r;
+ v[2] = cyl_radius-cyl_radius/r-monitor->curvature_depth;
+ }