Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

DrawRingsUtils.h

Go to the documentation of this file.
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

Generated on Sun Sep 7 01:25:50 2008 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002