00001 #include "SimpleArrow.h"
00002
00003 SimpleArrow::SimpleArrow (double s)
00004 {
00005 size = s;
00006 }
00007
00008 SimpleArrow::~SimpleArrow ()
00009 {
00010
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 }