00001
00002 #ifndef __CAR_WORLD_CLASSES_H_
00003 #define __CAR_WORLD_CLASSES_H_
00004
00005 #include "H_Geometry.h"
00006 #include "H_Input.h"
00007 #include "H_Object.h"
00008 #include "WorldBlock.h"
00009 #include "Tacho.h"
00010
00011
00012
00013 #define NB_OBJECTS 10
00014 #define OFF_WHEEL 0
00015 #define OFF_CAR 1
00016 #define OFF_BACKGROUND 2
00017
00018
00019
00020 #define EPSILON 0.1 //m
00021 #define NB_CAGE_POINTS 5 //m
00022
00023 #define HBRAKE_BUTTON 0
00024
00025 class CarWorld;
00026
00027
00028 class CWFeature
00029 {
00030 public:
00031 virtual ~CWFeature();
00032 virtual void reset();
00033
00034 virtual void update();
00035
00036
00037 virtual void draw_init();
00038 virtual void draw();
00039 public:
00040 CarWorld *m_CarWorld;
00041 };
00042
00043 class CWBackground : public CWFeature
00044 {
00045 public:
00046 CWBackground();
00047 virtual ~CWBackground();
00048 virtual void draw_init();
00049 virtual void draw();
00050 private:
00051 OFFObject m_OFFObject;
00052 };
00053
00054 class CWLandscape : public CWFeature
00055 {
00056 public:
00057 CWLandscape(const char *file_name);
00058 virtual ~CWLandscape();
00059 void draw_init();
00060 void draw();
00061 Contact GetContact(const FixedVector &AVector);
00062 Contact GetContact(const Point3D &APoint);
00063
00064 list<WorldBlock> MyWorldBlocks;
00065 };
00066
00067 #endif //__CAR_WORLD_CLASSES_H_