ValueArray Class Reference

#include <value.h>

Inheritance diagram for ValueArray:

Value List of all members.

Public Member Functions

virtual Data getSaveDescription (QString prefix)
 ValueArray (int x, int y)
 ValueArray (Token data)
Valueget (int x, int y)
void set (int x, int y, Value *v)
virtual QString toString ()
virtual bool equals_same_type (Value *other)

Public Attributes

int sx
int sy

Private Attributes

Value ** values

Detailed Description

Definition at line 54 of file value.h.


Constructor & Destructor Documentation

ValueArray::ValueArray int  x,
int  y
 

Definition at line 186 of file value.cpp.

References sx, sy, and values.

00187 {
00188   sx = x;
00189   sy = y;
00190   values = new Value*[sx*sy];
00191 }

ValueArray::ValueArray Token  data  ) 
 

Definition at line 176 of file value.cpp.

References Value::load(), sx, sy, and values.

00177 {
00178   Array<2,Data> arguments = data["values"];
00179   sx = arguments.size(0);
00180   sy = arguments.size(1);
00181   values = new Value*[sx*sy];
00182   for(Array<2,Data>::values a(arguments) ; a.more() ; ++a)
00183     values[a[0]+a[1]*sx]=Value::load(a);
00184 }


Member Function Documentation

bool ValueArray::equals_same_type Value other  )  [virtual]
 

Implements Value.

Definition at line 147 of file value.cpp.

References Value::equals(), sx, sy, and values.

00148 {
00149   ValueArray * o = (ValueArray*)other;
00150   if (sx!=o->sx) return false;
00151   if (sy!=o->sy) return false;
00152   for(int y = 0 ; y < sy ; y++)
00153     for(int x = 0 ; x < sx ; x++)
00154       if (!values[x+y*sx]->equals(o->values[x+y*sy])) 
00155         return false;
00156   return true;
00157 }

Value* ValueArray::get int  x,
int  y
[inline]
 

Definition at line 64 of file value.h.

References sx, and values.

00064 { return values[x+y*sx]; };

Data ValueArray::getSaveDescription QString  prefix  )  [virtual]
 

Implements Value.

Definition at line 159 of file value.cpp.

References sx, sy, and values.

00160 {
00161   Token E;
00162   E["type"]=Symbol("array");
00163   Array<2,Data> V(sx,sy);
00164   E["values"]=V;
00165   for(Array<2,Data>::positions xy(V) ; xy.more(); ++xy)
00166     xy=values[xy[0]+xy[1]*sx]->getSaveDescription(prefix);
00167   return E;
00168 }

void ValueArray::set int  x,
int  y,
Value v
 

Definition at line 170 of file value.cpp.

References sx, and values.

Referenced by IisCell::lookup().

00171 {
00172   assert(values);
00173   values[x+y*sx]=v;
00174 }

QString ValueArray::toString  )  [virtual]
 

Implements Value.

Definition at line 130 of file value.cpp.

00131 {
00132   return "<Array>";
00133   //  QString result;
00134   //  for(int y = 0 ; y < sy ; y++)
00135   //    {
00136   //      result+="(array ";
00137   //      for(int x = 0 ; x < sx ; x++)
00138   //        {
00139   //        result+=" ";
00140   //        result+=values[x+y*sx]->toString();
00141   //        }
00142   //      result+=")";
00143   //    }
00144   //  return result+")";
00145 }


Member Data Documentation

int ValueArray::sx
 

Definition at line 59 of file value.h.

Referenced by equals_same_type(), get(), getSaveDescription(), set(), and ValueArray().

int ValueArray::sy
 

Definition at line 60 of file value.h.

Referenced by equals_same_type(), getSaveDescription(), and ValueArray().

Value** ValueArray::values [private]
 

Definition at line 57 of file value.h.

Referenced by equals_same_type(), get(), getSaveDescription(), set(), and ValueArray().


The documentation for this class was generated from the following files:
Generated on Mon Jun 5 22:08:44 2006 for iis by  doxygen 1.4.6