/* * Copyright 2006-2009 Johannes Hofmann */ /* * cylindrical projection model */ x : m_view - c_view$ y : tan(c_nick - m_nick)$ x_rot : y * sin(c_tilt) + x * cos(c_tilt)$ y_rot : y * cos(c_tilt) - x * sin(c_tilt)$ x_scale : x_rot * scale$ y_scale : y_rot * scale$ /* * Some mangling for C code generation */ load("expr2c.mac")$ x_expand : trigexpand(x_scale)$ y_expand : trigexpand(y_scale)$ args: "double c_view, double c_nick, double c_tilt, double scale, double k0, double k1, double x0, double m_view, double m_nick"$ expr2c("ProjectionCylindrical::mac_x", args, x_expand)$ expr2c("ProjectionCylindrical::mac_y", args, y_expand)$ expr2c("ProjectionCylindrical::mac_x_dc_view", args, diff(x_expand, c_view))$ expr2c("ProjectionCylindrical::mac_x_dc_nick", args, diff(x_expand, c_nick))$ expr2c("ProjectionCylindrical::mac_x_dc_tilt", args, diff(x_expand, c_tilt))$ expr2c("ProjectionCylindrical::mac_x_dscale", args, diff(x_expand, scale))$ expr2c("ProjectionCylindrical::mac_y_dc_view", args, diff(y_expand, c_view))$ expr2c("ProjectionCylindrical::mac_y_dc_nick", args, diff(y_expand, c_nick))$ expr2c("ProjectionCylindrical::mac_y_dc_tilt", args, diff(y_expand, c_tilt))$ expr2c("ProjectionCylindrical::mac_y_dscale", args, diff(y_expand, scale))$