00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #if 0
00026
00027 #include "Teddy/Scenes/SkyBox.h"
00028 #include "Teddy/Graphics/View.h"
00029 #include "Teddy/Materials/Material.h"
00030 #include "Teddy/Models/Line.h"
00031 #include "Teddy/PhysicalComponents/Projection.h"
00032 using namespace Teddy::Materials;
00033 using namespace Teddy::Graphics;
00034 using namespace Teddy::PhysicalComponents;
00035
00036
00037 namespace Teddy {
00038 namespace Models {
00039
00040
00042 SkyBox::SkyBox()
00043 :
00044 Model( "skybox" )
00045 {
00046 Material *mat;
00047
00048 mat = new Material( "Skybox material",
00049 RENDER_MODE_LINE,
00050 RENDER_LIGHTING_COLOR,
00051 RENDER_OPTION_DIFFUSE_M
00052 );
00053 mat->setDiffuse( Color(0,0,1,1) );
00054 this->setMaterial( mat );
00055
00056
00057
00058
00059
00060
00061
00062 };
00063
00064
00066 void SkyBox::drawElements( Projection *p ){
00067 View *view = p->getView();
00068
00069 double a = 4.0;
00070
00071
00072
00073
00074 # define tmin (0.0 + 0.5/256.0) // this will remove (most of) visible edges
00075 # define tmax (1.0 - 0.5/256.0) // in skybox
00076
00077 view->beginQuads();
00078 view->vertex_v3ft2f( a, a, -a, tmin, tmin );
00079 view->vertex_v3ft2f( -a, a, -a, tmax, tmin );
00080 view->vertex_v3ft2f( -a, -a, -a, tmax, tmax );
00081 view->vertex_v3ft2f( a, -a, -a, tmin, tmax );
00082
00083 view->vertex_v3ft2f( -a, a, a, tmin, tmin );
00084 view->vertex_v3ft2f( a, a, a, tmax, tmin );
00085 view->vertex_v3ft2f( a, -a, a, tmin, tmin );
00086 view->vertex_v3ft2f( -a, -a, a, tmin, tmax );
00087
00088 view->vertex_v3ft2f( -a, a, -a, tmin, tmin );
00089 view->vertex_v3ft2f( -a, a, a, tmax, tmin );
00090 view->vertex_v3ft2f( -a, -a, a, tmax, tmax );
00091 view->vertex_v3ft2f( -a, -a, -a, tmin, tmax );
00092
00093 view->vertex_v3ft2f( a, a, a, tmin, tmin );
00094 view->vertex_v3ft2f( a, a, -a, tmax, tmin );
00095 view->vertex_v3ft2f( a, -a, -a, tmax, tmax );
00096 view->vertex_v3ft2f( a, -a, a, tmin, tmax );
00097
00098 view->vertex_v3ft2f( -a, a, a, tmax, tmin );
00099 view->vertex_v3ft2f( -a, a, -a, tmax, tmax );
00100 view->vertex_v3ft2f( a, a, -a, tmin, tmax );
00101 view->vertex_v3ft2f( a, a, a, tmin, tmin );
00102
00103 view->vertex_v3ft2f( -a, -a, a, tmax, tmin );
00104 view->vertex_v3ft2f( -a, -a, -a, tmax, tmax );
00105 view->vertex_v3ft2f( a, -a, -a, tmin, tmax );
00106 view->vertex_v3ft2f( a, -a, a, tmin, tmin );
00107 view->end();
00108 }
00109
00110
00111 };
00112 };
00113
00114
00115 #endif
00116