SimpleArrow.cpp

00001 #include "SimpleArrow.h"
00002 
00003 SimpleArrow::SimpleArrow (double s)
00004 {
00005         size = s;
00006 }
00007 
00008 SimpleArrow::~SimpleArrow ()
00009 {
00010         // nothing to do
00011 }
00012 
00013 void SimpleArrow::Draw ()
00014 {
00015         glBegin (GL_TRIANGLES);
00016 
00017                 glColor4fv (color);
00018 
00019                 glNormal3f (1.0f, 0.0f, 0.0f);
00020                 glVertex3f (0.0f, 0.0f, 0.0f);
00021                 glNormal3f (-0.707f, -0.707f, 0.0f);
00022                 glVertex3f (-size, -size/2, 0.0f);
00023                 glNormal3f (-0.707f, 0.707f, 0.0f);
00024                 glVertex3f (-size, size/2, 0.0f);
00025 
00026                 glColor4f (1.0f, 0.0f, 0.0f, 1.0f);
00027 
00028                 glNormal3f (1.0f, 0.0f, 0.0f);
00029                 glVertex3f (0.0f, 0.0f, 0.0f);
00030                 glNormal3f (-0.707f, 0.0f, -0.707f);
00031                 glVertex3f (-size, 0, -size/2);
00032                 glNormal3f (-0.707f, 0.0f, 0.707f);
00033                 glVertex3f (-size, 0, size/2);
00034 
00035                 glColor4fv (color);
00036 
00037                 glNormal3f (1.0f, 0.0f, 0.0f);
00038                 glVertex3f (0.0f, 0.0f, 0.0f);
00039                 glNormal3f (-0.707f, -0.707f, 0.0f);
00040                 glVertex3f (-size, -size/2, -size/2);
00041                 glNormal3f (-0.707f, 0.707f, 0.0f);
00042                 glVertex3f (-size, size/2, size/2);
00043 
00044                 glNormal3f (1.0f, 0.0f, 0.0f);
00045                 glVertex3f (0.0f, 0.0f, 0.0f);
00046                 glNormal3f (-0.707f, -0.707, 0.0f);
00047                 glVertex3f (-size, -size/2, size/2);
00048                 glNormal3f (-0.707f, 0.707, 0.0f);
00049                 glVertex3f (-size, size/2, -size/2);
00050                 
00051         glEnd ();
00052 }
00053 
00054 double SimpleArrow::GetBoundingRadius ()
00055 {
00056         return size * 1.415;
00057 }
00058 
00059 BoundingBox SimpleArrow::GetBoundingBox ()
00060 {
00061         BoundingBox result;
00062 
00063         result.xmin = -size;
00064         result.xmax = 0;
00065         result.ymin = -size / 2;
00066         result.ymax = size / 2;
00067         result.zmin = -size / 2;
00068         result.zmax = size / 2;
00069 
00070         return result;
00071 }

Generated on Sun Jul 2 13:20:39 2006 for Demo by  doxygen 1.4.6-NO