00001 /*************************************************************************** 00002 *cr 00003 *cr (C) Copyright 1995-2008 The Board of Trustees of the 00004 *cr University of Illinois 00005 *cr All Rights Reserved 00006 *cr 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * RCS INFORMATION: 00011 * 00012 * $RCSfile: DrawRingsUtils.h,v $ 00013 * $Author: johns $ $Locker: $ $State: Exp $ 00014 * $Revision: 1.8 $ $Date: 2008/08/14 21:22:48 $ 00015 * 00016 *************************************************************************** 00017 * DESCRIPTION: 00018 * 00019 * Ulities for calculating ring axes, ring puckering and displacement of 00020 * atoms from the mean ring plane. 00021 * 00022 ***************************************************************************/ 00023 00024 #ifndef DRAWRINGUTILS_H 00025 #define DRAWRINGUTILS_H 00026 00027 #include "SmallRing.h" 00028 00029 // Calculate Hill-Reilly puckering parameters and convert these to a ring colour 00030 void hill_reilly_ring_color(SmallRing &ring, float *framepos, float *rgb); 00031 00032 void hill_reilly_ring_colorscale(SmallRing &ring, float *framepos, float vmin, float vmax, const Scene *scene, float *rgb); 00033 00034 // Calculate Cremer-Pople puckering parameters and convert these to a ring colour 00035 void cremer_pople_ring_color(SmallRing &ring, float *framepos, float *rgb); 00036 00037 // Calculates the position at point t along the spline with co-efficients 00038 // A, B, C and D. 00039 // spline(t) = ((A * t + B) * t + C) * t + D 00040 void ribbon_spline(float *pos, const float * const A, const float * const B, 00041 const float * const C, const float * const D, const float t); 00042 00043 /* 00044 * Ribbon Frame: A frame of reference at a point along a ribbon being drawn by 00045 * using Twister algorithm. 00046 * A frame has an origin and 3 basis vectors, plus and approximate cumulative arc 00047 * length (used for texturing). 00048 */ 00049 struct RibbonFrame { 00050 float forward[3]; 00051 float right[3]; 00052 float up[3]; 00053 float origin[3]; 00054 float arclength; 00055 }; 00056 00057 00058 00059 #endif
1.2.14 written by Dimitri van Heesch,
© 1997-2002