The WeatherCell Class


 public:
 WeatherCell() { drawable = NULL; };
 ~WeatherCell() { ShiAssert( drawable == NULL ); };

 void Setup( int row, int col, ObjectDisplayList* objList );
 void Cleanup( ObjectDisplayList* objList );
 void Reset( int row, int col, ObjectDisplayList* objList ) { Setup(row, col, objList); };

 void UpdateForDrift( int cellRow, int cellCol ) { if (drawable) drawable->UpdateForDrift( cellRow, cellCol ); };

 float GetBase( void )  { return base; };
 float GetTop( void )  { return top; };

 float GetNWtop(void) { return drawable ? drawable->GetNWtop() : top; };
 float GetNEtop(void) { return drawable ? drawable->GetNEtop() : top; };
 float GetSWtop(void) { return drawable ? drawable->GetSWtop() : top; };
 float GetSEtop(void) { return drawable ? drawable->GetSEtop() : top; };

 float GetNWbottom(void) { return drawable ? drawable->GetNWbottom() : base; };
 float GetNEbottom(void) { return drawable ? drawable->GetNEbottom() : base; };
 float GetSWbottom(void) { return drawable ? drawable->GetSWbottom() : base; };
 float GetSEbottom(void) { return drawable ? drawable->GetSEbottom() : base; };

 BOOL IsEmpty(void) { return drawable == NULL; };
 float GetAlpha( float x, float y )  { return drawable ? drawable->GetTextureAlpha(x,y) : 0.0f; };

  protected:
 DrawableOvercast *drawable;

 float base;
 float top;