Back to index

wims  3.65+svn20090927
Public Member Functions | Public Attributes | Package Attributes | Static Package Attributes | Private Attributes
rene.zirkel.construction.Construction Class Reference

Construction holds all construction details, like objects, default values, viewing window etc., but not macros, which are constructions themselves, and stored in ZirkelCanvas. More...

Inheritance diagram for rene.zirkel.construction.Construction:
Inheritance graph
[legend]
Collaboration diagram for rene.zirkel.construction.Construction:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Construction ()
void addAddEventListener (AddEventListener ael)
void removeAddEventListener (AddEventListener ael)
void add (ConstructionObject o)
 Add an object o to the construction.
void addNoCheck (ConstructionObject o)
 Add an object o, but do not note add listener.
void added (ConstructionObject o)
synchronized void clear ()
 Delete all objects.
void back ()
 Clear last element.
void delete (boolean clearUndo)
 Delete the object and all children.
void delete ()
void undo ()
 Restore all elements from Undo.
Enumeration elements ()
Enumeration getSortedElements ()
ConstructionObject last ()
ConstructionObject lastByNumber ()
ConstructionObject lastButOne ()
void clearAfter (ConstructionObject after)
String getComment ()
void setComment (String s)
double getX ()
double getY ()
double getW ()
double getH ()
void setH (double h)
void setXYW (double x, double y, double w)
void save (XmlWriter xml)
synchronized void load (XmlTree tree, ZirkelCanvas zc) throws ConstructionException
void translateOffsets (ZirkelCanvas zc)
synchronized void readConstruction (XmlTree tree) throws ConstructionException
ConstructionObject find (String name)
ConstructionObject find (String name, ConstructionObject until)
 Find an object with a name, defined before object until.
ConstructionObject findInclusive (String name, ConstructionObject until)
 Find an object with that name before and inclusive object until.
boolean before (ConstructionObject first, ConstructionObject second)
 See, if the first object is prior to the second.
boolean dependsDirectlyOn (ConstructionObject o, ConstructionObject on)
 See, if one Object on directly depends on another o.
void clearRekFlags ()
 Unmark recursion flag of all objects.
boolean dependsOn (ConstructionObject o, ConstructionObject on)
 Check of object o depends on object on.
boolean dependsOnRek (ConstructionObject o, ConstructionObject on)
 Rekursive check, if o depends on object on.
void reorderConstruction ()
 Reorder the construction completely, so that no forwared references occur.
int countTail (ConstructionObject o)
 Recursive help routine for the reordering.
void needsOrdering ()
 Set the reordering flag.
void doOrder ()
 If the construction needs reording, order it!
void computeNeedsOrdering ()
 Walk through the construction and see, if any element contains a forward dependency.
int indexOf (ConstructionObject o)
ConstructionObject lastDep (ConstructionObject o)
boolean reorder (ConstructionObject o1, ConstructionObject o2)
 Set the object o1 right after o2, if possible.
void updateTexts (ConstructionObject o, String oldname)
 Update the texts of all objects that contain oldname, but not of the object o itself.
String getJobComment ()
void setJobComment (String s)
void updateCircleDep ()
Vector getParameters ()
int countParameters ()
Vector getTargets ()
int countTargets ()
void addParameter (ConstructionObject o)
void addTarget (ConstructionObject o)
void clearParameters ()
void clearTargets ()
void testParameter (ConstructionObject o) throws ConstructionException
void interpret (ZirkelCanvas zc, String s, String comment) throws ConstructionException
 This is to interpret a single line of input in descriptive mode or a single line read from a construction description in a file.
void interpret (ZirkelCanvas zc, String s) throws ConstructionException
void dovalidate ()
boolean intersectionBecameInvalid ()
void dovalidateDebug ()
void validate (ConstructionObject o, ConstructionObject avoid)
 Validate only o and those objects it depends on.
void recursiveValidate (ConstructionObject o, ConstructionObject avoid)
void computeTracks (ZirkelCanvas zc)
void clearTranslations ()
void determineConstructables ()
 Walk through the construction and mark all items, which are constructable from the set parameter items.
boolean determineConstructables (ConstructionObject o)
 Recursively go throught the objects, which o needs, and mark them as constructable, until a parameter object has been reached.
void clearConstructables ()
 Unmark constructable flag of all objects.
void determineChildren ()
 Walk through the objects and determine all children of any object, which is marked constructable.
void setParameterAsConstructables ()
 Mark all parameter objects as constructables.
String[] getPromptFor ()
boolean shouldSwitch ()
boolean noteSwitch ()
void shouldSwitch (boolean flag, boolean note)
void shouldSwitch (boolean flag)
void switchBack ()
void clearSwitches ()
boolean haveSwitched ()
boolean changed ()
void haveChanged ()
void changed (boolean flag)
void addTranslator (Translator t)
void runTranslators (Construction from)
void clearTranslators ()
void updateCount ()
 Set the count the maximal count number of all objects plus 1.
void setOriginalOrder (boolean flag)
 Reset the constuction to the original order, saving the current one, or use the current one again.
Construction getTranslation ()
void setTranslation (Construction C)
boolean loading ()
void addError (String s)
Enumeration getErrors ()
void clearErrors ()
void dontAlternate (boolean flag)
boolean canAlternate ()
void setPixel (double pixel)
 Called by the ZirkelCanvas to set the pixel per units.
double getPixel ()

Public Attributes

Vector V
Vector Parameters
Vector Targets
String Comment = ""
Vector PromptFor = new Vector()
Vector Prompts
boolean Partial = Global.getParameter("options.partial",false)
boolean Animate = false
boolean ShowAll = false
boolean SuperHide = false
int DefaultColor = Global.getParameter("options.color",0)
boolean Changed = false
Construction TranslateInto
boolean BlockSimulation = false
boolean DontAlternateIntersections = false
String TrackP = null
Vector TrackPO
Vector AnimateV = null
int Omit = 0
boolean AnimateNegative = false
boolean AnimateOriginal = false
String AnimateDelay = null
String Icons = ""
boolean AnimateBreakpoints = false
long AnimateTime = 1000
boolean AnimateLoop = false
boolean ResizeBackground = false
String BackgroundFile = null
ChangedListener CL = null
MyVector TranslatorList = new MyVector()
boolean Loading = false

Package Attributes

String JobComment = ""
double Y = 0
double W = 8
double H = 8
boolean Restricted = Global.getParameter("options.restricted",true)
boolean PartialLines = Global.getParameter("options.plines",false)
boolean Vectors = Global.getParameter("options.arrow",false)
boolean ShowNames = Global.getParameter("options.shownames",false)
boolean ShowValues = Global.getParameter("options.showvalues",false)
boolean LongNames = Global.getParameter("options.longnames",false)
boolean LargeFont = Global.getParameter("options.largefont",false)
boolean BoldFont = Global.getParameter("options.boldfont",false)
boolean Hidden = false
boolean Obtuse = Global.getParameter("options.obtuse",false)
boolean Solid = Global.getParameter("options.solid",false)
boolean Paint = false
int DefaultType = Global.getParameter("options.type",0)
int DefaultColorType = Global.getParameter("options.colortype",0)
int Count = 0
ObjectConstructor ObjectConstructors []
Vector Undo = new Vector()
String TrackPM = null
String TrackO = null
String AnimateP = null
boolean NeedsOrdering = false
Interpreter Int = new Interpreter(this)
boolean IntersectionBecameInvalid
boolean ShouldSwitch = false
boolean NoteSwitch = false
Vector VOld = null
Vector Errors = new Vector()
double Pixel = 100

Static Package Attributes

static final long serialVersionUID = Zirkel.Version

Private Attributes

double X = 0
AddEventListener AEL = null

Detailed Description

Construction holds all construction details, like objects, default values, viewing window etc., but not macros, which are constructions themselves, and stored in ZirkelCanvas.

The class has methods to read and write constructions, and to draw constructions to MyGraphics.

Author:
Rene Grothmann

Definition at line 27 of file Construction.java.


Constructor & Destructor Documentation

Definition at line 85 of file Construction.java.

       {      clear(); Changed=false;
       }

Here is the call graph for this function:


Member Function Documentation

void rene.zirkel.construction.Construction.add ( ConstructionObject  o) [inline]

Add an object o to the construction.

Parameters:
o

Definition at line 103 of file Construction.java.

       {      if (!o.isGotNCount()) o.setNCount(Count++); // give count
              else o.setGotNCount(false); 
              V.addElement(o);
              if (!Undo.isEmpty()) Undo.removeAllElements(); // clear undo
              o.setConstruction(this);
              if (AEL!=null) AEL.added(this,o); // note add listener
              haveChanged(); // set changed flag
              // System.out.println(o.getName()+" "+o.getNCount());
       }

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.construction.Construction.addAddEventListener ( AddEventListener  ael) [inline]

Definition at line 91 of file Construction.java.

       {      AEL=ael;
       }
void rene.zirkel.construction.Construction.added ( ConstructionObject  o) [inline]

Definition at line 129 of file Construction.java.

       {      if (AEL!=null) AEL.added(this,o);
       }

Here is the caller graph for this function:

Definition at line 1221 of file Construction.java.

       {      Errors.addElement(s);
       }

Here is the caller graph for this function:

void rene.zirkel.construction.Construction.addNoCheck ( ConstructionObject  o) [inline]

Add an object o, but do not note add listener.

Add listener is used to check, if an assignment is finished.

Parameters:
o

Definition at line 119 of file Construction.java.

       {      if (!o.isGotNCount()) o.setNCount(Count++); // give count
              else o.setGotNCount(false); 
              V.addElement(o);
              if (!Undo.isEmpty()) Undo.removeAllElements();
              o.setConstruction(this);
              haveChanged();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.construction.Construction.addParameter ( ConstructionObject  o) [inline]

Definition at line 837 of file Construction.java.

{ Parameters.addElement(o); }

Here is the caller graph for this function:

void rene.zirkel.construction.Construction.addTarget ( ConstructionObject  o) [inline]

Definition at line 838 of file Construction.java.

{ Targets.addElement(o); }

Here is the caller graph for this function:

void rene.zirkel.construction.Construction.addTranslator ( Translator  t) [inline]

Definition at line 1152 of file Construction.java.

       {      TranslatorList.addElement(t);
       }

Here is the caller graph for this function:

Clear last element.

Definition at line 153 of file Construction.java.

       {      ConstructionObject o=last();
              if (o==null) return;
              o.setInConstruction(false);
              Undo.addElement(o);
              if (V.size()>0) V.removeElementAt(V.size()-1);
              updateCircleDep();
              clearParameters(); clearTargets();
              haveChanged();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

boolean rene.zirkel.construction.Construction.before ( ConstructionObject  first,
ConstructionObject  second 
) [inline]

See, if the first object is prior to the second.

Definition at line 552 of file Construction.java.

       {      Enumeration e=V.elements();
              while (e.hasMoreElements())
              {      ConstructionObject c=(ConstructionObject)e.nextElement();
                     if (c==first) return true;
                     if (c==second) break;
              }
              return false;
       }

Here is the caller graph for this function:

Definition at line 1237 of file Construction.java.

Definition at line 1135 of file Construction.java.

       {      return Changed;
       }

Here is the caller graph for this function:

Definition at line 1146 of file Construction.java.

       {      Changed=flag;
       }
synchronized void rene.zirkel.construction.Construction.clear ( ) [inline]

Delete all objects.

Definition at line 136 of file Construction.java.

       {      V=new Vector();
              if (!Undo.isEmpty()) Undo.removeAllElements();
              Comment="";
              JobComment="";
              clearParameters(); clearTargets();
              Prompts=new Vector();
              X=0; Y=0; W=8;
              Changed=false;
              Count=0;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.construction.Construction.clearAfter ( ConstructionObject  after) [inline]

Definition at line 241 of file Construction.java.

       {      while (true)
              {      ConstructionObject o=last();
                     if (o==null || o==after) break;
                     o.setInConstruction(false);
                     V.removeElementAt(V.size()-1);
                     haveChanged();
              }
              updateCircleDep();
              clearParameters(); clearTargets(); 
       }

Here is the call graph for this function:

Unmark constructable flag of all objects.

Definition at line 1039 of file Construction.java.

       {      Enumeration e=elements();
              while (e.hasMoreElements())
              {      ConstructionObject o=(ConstructionObject)e.nextElement();
                     o.setFlag(false);
              }
       }

Here is the call graph for this function:

Definition at line 1229 of file Construction.java.

       {      Errors.removeAllElements();
       }

Definition at line 840 of file Construction.java.

       {      Enumeration e=elements();
              while (e.hasMoreElements())
              {      ConstructionObject o=(ConstructionObject)e.nextElement();
                     o.clearParameter();
                     o.setSpecialParameter(false);
              }
              Parameters=new Vector(); 
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Unmark recursion flag of all objects.

Definition at line 577 of file Construction.java.

       {      Enumeration e=elements();
              while (e.hasMoreElements())
              {      ConstructionObject o=(ConstructionObject)e.nextElement();
                     o.setRekFlag(false);
              }
       }      

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1116 of file Construction.java.

       {      Enumeration e=elements();
              while (e.hasMoreElements())
              {      ConstructionObject o=(ConstructionObject)e.nextElement();
                     if (o instanceof IntersectionObject)
                            ((IntersectionObject)o).switchBack();
              }
       }

Here is the call graph for this function:

Definition at line 849 of file Construction.java.

       {      Enumeration e=elements();
              while (e.hasMoreElements())
              {      ConstructionObject o=(ConstructionObject)e.nextElement();
                     o.setTarget(false);
              }
              Targets=new Vector();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 973 of file Construction.java.

       {      Enumeration e=elements();
              while (e.hasMoreElements())
              {      ConstructionObject o=(ConstructionObject)e.nextElement();
                     o.setTranslation(null);
              }
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1164 of file Construction.java.

       {      TranslatorList.removeAllElements();
       }

Here is the caller graph for this function:

Walk through the construction and see, if any element contains a forward dependency.

Definition at line 718 of file Construction.java.

       {      // none checked so far
              Enumeration e=V.elements();
              while (e.hasMoreElements())
              {      ((ConstructionObject)e.nextElement()).Flag=false;
              }
              // check all
              e=V.elements();
              while (e.hasMoreElements())
              {      Enumeration ec=((ConstructionObject)e.nextElement()).depending();
                     while (ec.hasMoreElements())
                     {      if (!((ConstructionObject)ec.nextElement()).Flag)
                            {      NeedsOrdering=true;
                                   return;
                            }
                     }
              }      
              NeedsOrdering=false;
       }

Here is the caller graph for this function:

Definition at line 965 of file Construction.java.

       {      Enumeration e=elements();
              while (e.hasMoreElements())
              {      ConstructionObject o=(ConstructionObject)e.nextElement();
                     if (o instanceof TrackObject) ((TrackObject)o).compute(zc);
              }
       }

Here is the call graph for this function:

Definition at line 827 of file Construction.java.

       {      if (Parameters==null) return 0;
              return Parameters.size();
       }
int rene.zirkel.construction.Construction.countTail ( ConstructionObject  o) [inline]

Recursive help routine for the reordering.

Returns the maximal tail length of the object o. It is assumed that marked objects already know their correct tail length.

Parameters:
o
Returns:
tail length

Definition at line 677 of file Construction.java.

       {      if (o.Flag) return o.Scratch;
              o.Flag=true;
              int max=0;
              ConstructionObject oc[]=o.getDepArray();
              if (oc.length==0)
              {      o.Scratch=0;
              }
              else
              {      for (int i=0; i<oc.length; i++)
                     {      if (oc[i]==o) continue;
                            int k=countTail(oc[i]);
                            if (k>max) max=k;
                     }
                     o.Scratch=max+1;
              }
              return o.Scratch;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 832 of file Construction.java.

       {      if (Targets==null) return 0;
              return Targets.size();
       }

Delete the object and all children.

The constructable elements must have been marked before.

Definition at line 168 of file Construction.java.

       {      if (clearUndo && !Undo.isEmpty()) Undo.removeAllElements();
              for (int i=V.size()-1; i>=0; i--)
              {      ConstructionObject o=(ConstructionObject)V.elementAt(i);
                     if (o.isFlag() && !o.isJobTarget())
                     {      o.setInConstruction(false);
                            Undo.addElement(o);
                            V.removeElementAt(i);
                     }
              }
              updateCircleDep();
              clearParameters(); 
              clearTargets();
              haveChanged();
       }

Here is the call graph for this function:

Definition at line 183 of file Construction.java.

       {      delete(true);
       }
boolean rene.zirkel.construction.Construction.dependsDirectlyOn ( ConstructionObject  o,
ConstructionObject  on 
) [inline]

See, if one Object on directly depends on another o.

Definition at line 566 of file Construction.java.

       {      Enumeration e=o.depending();
              while (e.hasMoreElements())
              {      if (on==e.nextElement()) return true;
              }
              return false;
       }

Here is the caller graph for this function:

boolean rene.zirkel.construction.Construction.dependsOn ( ConstructionObject  o,
ConstructionObject  on 
) [inline]

Check of object o depends on object on.

Parameters:
o
on
Returns:
true or false

Definition at line 591 of file Construction.java.

       {      clearRekFlags(); // used as markers
              boolean res=dependsOnRek(o,on);
              return res;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

boolean rene.zirkel.construction.Construction.dependsOnRek ( ConstructionObject  o,
ConstructionObject  on 
) [inline]

Rekursive check, if o depends on object on.

Clear constructables before, since they are marked as already checked!

Parameters:
o
on
Returns:
true or false

Definition at line 604 of file Construction.java.

       {      //System.out.println(o.getName()+" depends on "+on.getName()+"?");
              o.setRekFlag(true);
              if (o==on) return true;
              ConstructionObject o1[]=o.getDepArray();
              for (int i=0; i<o1.length; i++)
              {      // System.out.println(o.getName()+" - check: "+o1[i].getName());
                     if (o1[i]==o || o1[i].isRekFlag()) continue;
                     // System.out.println("flag not set.");
                     if (dependsOnRek(o1[i],on)) return true;
              }
              return false;
       }

Here is the caller graph for this function:

Walk through the objects and determine all children of any object, which is marked constructable.

Mark those children as constructable too.

Definition at line 1052 of file Construction.java.

       {      Enumeration e=elements();
              while (e.hasMoreElements())
              {      ConstructionObject o=(ConstructionObject)e.nextElement();
                     if (!o.isFlag())
                     {      Enumeration ee=o.depending();
                            while (ee.hasMoreElements())
                            {      ConstructionObject oo=
                                          (ConstructionObject)ee.nextElement();
                                   if (oo.isFlag())
                                   {      o.setFlag(true); break;
                                   }
                            }
                     }
              }

       }

Here is the call graph for this function:

Walk through the construction and mark all items, which are constructable from the set parameter items.

This is used to determine the possible targets.

Definition at line 987 of file Construction.java.

       {      Enumeration e=elements();
              while (e.hasMoreElements())
              {      ConstructionObject o=(ConstructionObject)e.nextElement();
                     if (o.isParameter()) o.setFlag(true);
                     else
                     {      Enumeration ee=o.depending();
                            boolean constructable=
                                          (o instanceof ExpressionObject || o instanceof FunctionObject);
                            while (ee.hasMoreElements())
                            {      ConstructionObject oo=
                                          (ConstructionObject)ee.nextElement();
                                   if (o!=oo)
                                   {      if (oo.isFlag()) constructable=true;
                                          else
                                          {      constructable=false; break;
                                          }
                                   }
                            }
                            o.setFlag(constructable);
                            // if (constructable) System.out.println(o.getName());
                     }
              }
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Recursively go throught the objects, which o needs, and mark them as constructable, until a parameter object has been reached.

The object flags are used and must be cleared before.

See also:
clearConstructables
Parameters:
o
Returns:
Object is constructable.

Definition at line 1020 of file Construction.java.

       {      if (o.isFlag()) return true;
              ConstructionObject dep[]=o.getDepArray();
              boolean constructable=
                     (o instanceof ExpressionObject || o instanceof FunctionObject);
              for (int i=0; i<dep.length; i++)
              {      if (dep[i]==null) return false;
                     if (dep[i]==o) continue;
                     if (!determineConstructables(dep[i])) return false;
                     else constructable=true;
              }
              o.setFlag(constructable);
              return true;
       }

Here is the call graph for this function:

Definition at line 1233 of file Construction.java.

If the construction needs reording, order it!

Definition at line 708 of file Construction.java.

       {      if (!NeedsOrdering) return;
              reorderConstruction();
              NeedsOrdering=false;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 881 of file Construction.java.

       {      doOrder(); // will do something only if necessary
              while (true)
              {      Enumeration e=elements();
                     boolean stop=true;
                     IntersectionBecameInvalid=false;
                     while (e.hasMoreElements())
                     {      ConstructionObject o=(ConstructionObject)e.nextElement();
                            boolean valid=o.valid();
                            o.validate();
                            if (o instanceof IntersectionObject && valid && !o.valid())
                            {      IntersectionBecameInvalid=true;
                            }
                            if (o.changedBy()>1e-6) stop=false;
                     }
                     if (stop) break;
              }
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 907 of file Construction.java.

       {      doOrder(); // will do something only if necessary
              System.out.println("--- Time validate() ---");
              while (true)
              {      Enumeration e=elements();
                     boolean stop=true;
                     while (e.hasMoreElements())
                     {      ConstructionObject o=(ConstructionObject)e.nextElement();
                            long time=System.currentTimeMillis();
                            for (int i=0; i<100; i++) o.validate();
                            time=System.currentTimeMillis()-time;
                            if (time>0)
                                   System.out.println(o.getName()+" - "+(time/100.0)+" msec");
                            if (o.changedBy()>1e-6) stop=false;
                     }
                     if (stop) break;
              }
       }

Here is the call graph for this function:

Definition at line 202 of file Construction.java.

       {      return V.elements();
       }

Here is the caller graph for this function:

ConstructionObject rene.zirkel.construction.Construction.find ( String  name) [inline]
Parameters:
name
Returns:
Object with that name or null.

Definition at line 508 of file Construction.java.

       {      Enumeration e=V.elements();
              while (e.hasMoreElements())
              {      ConstructionObject c=(ConstructionObject)e.nextElement();
                     if (c.getName().equals(name)) return c;
              }
              return null;
       }

Here is the caller graph for this function:

ConstructionObject rene.zirkel.construction.Construction.find ( String  name,
ConstructionObject  until 
) [inline]

Find an object with a name, defined before object until.

Parameters:
name
until
Returns:
Object with that name or null

Definition at line 523 of file Construction.java.

       {      Enumeration e=V.elements();
              while (e.hasMoreElements())
              {      ConstructionObject c=(ConstructionObject)e.nextElement();
                     if (c==until) break;
                     if (c.getName().equals(name)) return c;
              }
              return null;
       }
ConstructionObject rene.zirkel.construction.Construction.findInclusive ( String  name,
ConstructionObject  until 
) [inline]

Find an object with that name before and inclusive object until.

Parameters:
name
until
Returns:
Object with that name or null

Definition at line 539 of file Construction.java.

       {      Enumeration e=V.elements();
              while (e.hasMoreElements())
              {      ConstructionObject c=(ConstructionObject)e.nextElement();
                     if (c.getName().equals(name)) return c;
                     if (c==until) break;
              }
              return null;
       }

Here is the caller graph for this function:

Reimplemented in rene.zirkel.macro.Macro.

Definition at line 253 of file Construction.java.

       {      return Comment;
       }

Definition at line 1225 of file Construction.java.

       {      return Errors.elements();
       }

Definition at line 265 of file Construction.java.

{ return H; }

Here is the caller graph for this function:

Definition at line 808 of file Construction.java.

       {      return JobComment;
       }

Definition at line 826 of file Construction.java.

{ return Parameters; }

Definition at line 1252 of file Construction.java.

       {      return Pixel;
       }

Here is the caller graph for this function:

Definition at line 1083 of file Construction.java.

       {      String s[]=new String[PromptFor.size()];
              PromptFor.copyInto(s);
              return s;
       }

Here is the caller graph for this function:

Definition at line 207 of file Construction.java.

       {      ConstructionObject o[]=new ConstructionObject[V.size()];
              V.copyInto(o);
              for (int i=0; i<o.length; i++) o[i].Value=(o[i].getNCount());
              Sorter.sort(o);
              Vector v=new Vector();
              for (int i=0; i<o.length; i++) v.addElement(o[i]);
              return v.elements();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Reimplemented in rene.zirkel.macro.Macro.

Definition at line 831 of file Construction.java.

{ return Targets; }

Definition at line 1207 of file Construction.java.

       {      return TranslateInto;
       }

Here is the caller graph for this function:

Definition at line 264 of file Construction.java.

{ return W; }

Here is the caller graph for this function:

Definition at line 262 of file Construction.java.

{ return X; }

Here is the caller graph for this function:

Definition at line 263 of file Construction.java.

{ return Y; }

Here is the caller graph for this function:

Definition at line 1141 of file Construction.java.

       {      changed(true);
              if (CL!=null) CL.notifyChanged();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1125 of file Construction.java.

       {      Enumeration e=elements();
              while (e.hasMoreElements())
              {      ConstructionObject o=(ConstructionObject)e.nextElement();
                     if (o instanceof IntersectionObject)
                            if (((IntersectionObject)o).isSwitched()) return true;
              }
              return false;
       }

Here is the call graph for this function:

int rene.zirkel.construction.Construction.indexOf ( ConstructionObject  o) [inline]
Parameters:
o
Returns:
Index of the object o in the vector.

Definition at line 743 of file Construction.java.

       {      return V.indexOf(o);
       }

Here is the caller graph for this function:

void rene.zirkel.construction.Construction.interpret ( ZirkelCanvas  zc,
String  s,
String  comment 
) throws ConstructionException [inline]

This is to interpret a single line of input in descriptive mode or a single line read from a construction description in a file.

Definition at line 869 of file Construction.java.

       {      Int.interpret(zc,s,comment);
       }

Here is the call graph for this function:

Definition at line 874 of file Construction.java.

       {      Int.interpret(zc,s,"");
       }

Here is the call graph for this function:

Returns:
During last dovalidate an intersection became invalid.

Definition at line 903 of file Construction.java.

ConstructionObject rene.zirkel.construction.Construction.last ( ) [inline]

Definition at line 217 of file Construction.java.

       {      if (V.size()>0) return (ConstructionObject)V.elementAt(V.size()-1);
              else return null;
       }

Here is the caller graph for this function:

ConstructionObject rene.zirkel.construction.Construction.lastButOne ( ) [inline]

Definition at line 236 of file Construction.java.

       {      if (V.size()>1) return (ConstructionObject)V.elementAt(V.size()-2);
              else return null;
       }
ConstructionObject rene.zirkel.construction.Construction.lastByNumber ( ) [inline]

Definition at line 222 of file Construction.java.

       {      ConstructionObject o=null;
              int maxCount=-1;
              Enumeration e=elements();
              while (e.hasMoreElements())
              {      ConstructionObject co=(ConstructionObject)e.nextElement();
                     if (co.getNCount()>maxCount)
                     {      maxCount=co.getNCount();
                            o=co;
                     }
              }
              return o;
       }

Here is the call graph for this function:

ConstructionObject rene.zirkel.construction.Construction.lastDep ( ConstructionObject  o) [inline]
Parameters:
o
Returns:
Last object, o depends on or nil

Definition at line 752 of file Construction.java.

       {      int res=-1;
              ConstructionObject ores=null;
              Enumeration e=o.depending();
              while (e.hasMoreElements())
              {      ConstructionObject u=(ConstructionObject)e.nextElement();
                     int i=indexOf(u);
                     if (i>res)
                     {      res=i; ores=u; 
                     }
              }
              return ores;
       }

Here is the call graph for this function:

synchronized void rene.zirkel.construction.Construction.load ( XmlTree  tree,
ZirkelCanvas  zc 
) throws ConstructionException [inline]

Definition at line 293 of file Construction.java.

       {      Enumeration root=tree.getContent();
              TrackP=null;
              TrackPO=new Vector();
              AnimateP=null;
              AnimateNegative=false;
              AnimateOriginal=false;
              AnimateBreakpoints=false;
              AnimateLoop=false;
              AnimateTime=1000;
              Icons="";
              BackgroundFile=null;
              ResizeBackground=false;
              zc.clearDrawings();
              while (root.hasMoreElements())
              {      tree=(XmlTree)root.nextElement();  
                     XmlTag tag=tree.getTag();
                     if (tag.name().equals("Comment"))
                     {      try
                            {      setComment(tree.parseComment());
                            }
                            catch (Exception e)
                            {      throw new ConstructionException("Illegal Comment");
                            }
                     }
                     else if (tag.name().equals("Assignment"))
                     {      try
                            {      setJobComment(tree.parseComment());
                            }
                            catch (Exception e)
                            {      throw new ConstructionException("Illegal Assignment");
                            }
                     }
                     else if (tag.name().equals("Track"))
                     {      if (!tag.hasParam("track"))
                                   throw new ConstructionException(
                                          Zirkel.name("exception.track"));
                            TrackP=tag.getValue("track");
                            TrackPO=new Vector();
                            int i=0;
                            while (tag.hasParam("track"+i))
                            {      TrackPO.addElement(tag.getValue("track"+i));
                                   i++;
                            }
                            if (tag.hasParam("move")) TrackPM=tag.getValue("move");
                            else TrackPM=null;
                            if (tag.hasParam("on")) TrackO=tag.getValue("on");
                            else TrackO=null;
                            Animate=false; Paint=true;
                            if (tag.hasParam("animate"))
                            {      if (tag.getValue("animate").equals("nopaint")) Paint=false;
                                   Animate=true;
                            }
                            Omit=0;
                            if (tag.hasParam("omit"))
                            {      try
                                   {      Omit=Integer.parseInt(tag.getValue("omit"));
                                   }
                                   catch (Exception e) {}
                            }
                     }
                     else if (tag.name().equals("Animate"))
                     {      if (!tag.hasParam("animate") || !tag.hasParam("via0"))
                                   throw new ConstructionException(
                                          Zirkel.name("exception.animate"));
                            AnimateP=tag.getValue("animate");
                            int k=0;
                            AnimateV=new Vector();
                            while (tag.hasParam("via"+k))
                            {      AnimateV.addElement(tag.getValue("via"+k));
                                   k++;
                            }
                            AnimateNegative=false;
                            if (tag.hasParam("negative") && 
                                          tag.getValue("negative").equals("true"))
                                   AnimateNegative=true;
                            if (tag.hasParam("original") && 
                                          tag.getValue("original").equals("true"))
                                   AnimateOriginal=true;
                            AnimateDelay=null;
                            if (tag.hasParam("delay"))
                            {      AnimateDelay=tag.getValue("delay");
                            }
                     }
                     else if (tag.name().equals("AnimateBreakpoints"))
                     {      AnimateBreakpoints=true;
                            try
                            {      if (tag.hasParam("time"))
                                   {      AnimateTime=new Long(tag.getValue("time")).longValue();
                                   }
                                   if (tag.hasParam("loop"))
                                   {      AnimateLoop=true;
                                   }
                            }
                            catch (Exception e)
                            {      throw new ConstructionException("exception.animate");
                            }
                     }
                     else if (tag.name().equals("Window"))
                     {      try
                            {      if (tag.hasParam("x"))
                                          X=new Double(tag.getValue("x")).doubleValue();
                                   if (tag.hasParam("y"))
                                          Y=new Double(tag.getValue("y")).doubleValue();
                                   if (tag.hasParam("w"))
                                          W=new Double(tag.getValue("w")).doubleValue();
                                   zc.ShowGrid=tag.hasTrueParam("showgrid");
                            }
                            catch (Exception e)
                            {      throw new ConstructionException("Illegal Window Parameters");
                            }                           
                     }
                     else if (tag.name().equals("Grid"))
                     {      try
                            {      if (tag.hasParam("color"))
                                   {      int n=new Integer(tag.getValue("color")).intValue();
                                          if (n>=0 && n<ZirkelFrame.Colors.length)
                                                 zc.GridColor=n;
                                   }
                                   if (tag.hasParam("thickness"))
                                   {      int n=new Integer(tag.getValue("thickness")).intValue();
                                          if (n>=0 && n<4)
                                                 zc.GridThickness=n;
                                   }
                                   zc.GridLabels=!(tag.hasTrueParam("nolables"));
                                   zc.GridLarge=tag.hasTrueParam("large");
                                   zc.GridBold=tag.hasTrueParam("bold");
                                   zc.AxesOnly=tag.hasTrueParam("axesonly");
                            }
                            catch (Exception e)
                            {      throw new ConstructionException("Illegal Grid Parameters");
                            }
                     }
                     else if (tag.name().equals("Background"))
                     {      try
                            {      if (tag.hasTrueParam("resize"))
                                          ResizeBackground=true;
                                   BackgroundFile=tag.getValue("file");
                                   if (BackgroundFile==null) 
                                          throw new ConstructionException("Illegal Background Parameters");
                            }
                            catch (Exception e)
                            {      throw new ConstructionException("Illegal Background Parameters");
                            }                           
                     }
                     else if (tag.name().equals("Draw"))
                     {      zc.loadDrawings(tree);
                     }
                     else if (tag.name().equals("Objects"))
                     {      // System.out.println("reading objects");
                            readConstruction(tree);
                            // System.out.println("finished reading objects");
                            updateCount();
                            computeNeedsOrdering();
                            //System.out.println("needs ordering: "+NeedsOrdering);
                            doOrder();
                            //System.out.println("finished reading objects");
                            break;
                     }
                     else if (tag.name().equals("Restrict"))
                     {      if (!tag.hasParam("icons"))
                                   throw new ConstructionException("Illegal Window Parameters");
                            Icons=tag.getValue("icons");
                     }
              }
       }

Here is the call graph for this function:

Definition at line 1217 of file Construction.java.

{ return Loading; }

Set the reordering flag.

Definition at line 701 of file Construction.java.

       {      NeedsOrdering=true;
       }

Here is the caller graph for this function:

Definition at line 1095 of file Construction.java.

       {      return NoteSwitch;
       }
synchronized void rene.zirkel.construction.Construction.readConstruction ( XmlTree  tree) throws ConstructionException [inline]

Definition at line 468 of file Construction.java.

       {      Enumeration e=tree.getContent();
              //System.out.println("start reading tree");
              while (e.hasMoreElements())
              {      tree=(XmlTree)e.nextElement();
                     int i,n=ObjectConstructors.length;
                     for (i=0; i<n; i++)
                     {      try
                            {      if (ObjectConstructors[i].construct(tree,this)) break;
                            }
                            catch (ConstructionException ex)
                            {      if (tree.getTag().hasParam("name"))
                                   {      String name=tree.getTag().getValue("name");
                                          throw new ConstructionException(
                                                 ex.getDescription()+" (in "+name+")");
                                   }
                                   else throw ex;
                            }
                     }
                     if (i>=n) throw 
                            new ConstructionException(tree.getTag().name()+" unknown!");
              }
              //System.out.println("end reading tree");
              e=V.elements();
              while (e.hasMoreElements())
              {      ((ConstructionObject)e.nextElement()).laterBind(this);
              }
              //System.out.println("finished later bind");
              dovalidate();
              updateCircleDep();
              Changed=false;
              //System.out.println("finished circle dep");
       }

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.construction.Construction.recursiveValidate ( ConstructionObject  o,
ConstructionObject  avoid 
) [inline]

Definition at line 956 of file Construction.java.

       {      if (o.isRekFlag() || o==avoid) return;
              o.setRekFlag(true);
              ConstructionObject d[]=o.getDepArray();
              for (int i=0; i<d.length; i++)
              {      recursiveValidate(d[i],avoid);
              }
       }

Here is the caller graph for this function:

void rene.zirkel.construction.Construction.removeAddEventListener ( AddEventListener  ael) [inline]

Definition at line 95 of file Construction.java.

       {      AEL=null;
       }
boolean rene.zirkel.construction.Construction.reorder ( ConstructionObject  o1,
ConstructionObject  o2 
) [inline]

Set the object o1 right after o2, if possible.

Never put an element to a later position!

Definition at line 770 of file Construction.java.

       {      /*// old routine changing internal order
              int k1=indexOf(o1),k2=-1;
              if (o2!=null) k2=indexOf(o2);
              if (k1<=k2+1) return false;
              ConstructionObject o=lastDep(o1);
              if (o!=null && indexOf(o)>k2) return false;
              V.removeElement(o1);
              V.insertElementAt(o1,k2+1);
              */
              // new routine changing generation numbers
              int n=-1;
              if (o2!=null) n=o2.getNCount();
              Enumeration e=V.elements();
              while (e.hasMoreElements())
              {      ConstructionObject o=(ConstructionObject)e.nextElement();
                     if (o.getNCount()>n)
                     o.setNCount(o.getNCount()+1);
              }
              o1.setNCount(n+1);
              haveChanged();
              return true;
       }

Here is the call graph for this function:

Reorder the construction completely, so that no forwared references occur.

This is a simple algorithm using tail chain length in dircted graphs. The construction must not contain circles, however.

Definition at line 624 of file Construction.java.

       {      // Get the objects into a faster array
              ConstructionObject o[]=new ConstructionObject[V.size()];
              V.copyInto(o);
              int n=o.length;
              if (n==0) return;
              // Compute tail chain length for all objects recursively
              for (int i=0; i<n; i++) 
              {      o[i].Scratch=0; 
                     o[i].Flag=false; 
              }
              for (int i=0; i<n; i++)
              {      countTail(((ConstructionObject)o[i]));
                     /* 
                     // Test print:
                     System.out.println(((ConstructionObject)o[i]).getName()+" "+
                                   ((ConstructionObject)o[i]).Scratch);
                     Enumeration e=((ConstructionObject)o[i]).depending();
                     while (e.hasMoreElements())
                     {      System.out.println("- "+((ConstructionObject)e.nextElement()).getName());
                     }
                     */
              }
              // Sort the array using bubble sort (least distroying sort)
              if (n<500)
              {      for (int i=1; i<n; i++)
                     {      int k=o[i].Scratch;
                            int j=i;
                            while (j>0 && (o[j-1]).Scratch>k) j--;
                            if (j<i)
                            {      ConstructionObject oh=o[i];
                                   for (int h=i; h>j; h--) o[h]=o[h-1];
                                   o[j]=oh;
                            }
                     }
              }
              else // Use quick sort
              {      for (int i=0; i<o.length; i++) o[i].Value=o[i].Scratch;
                     Sorter.sort(o);
              }
              // Copy back all objects into the construction
              V=new Vector();
              for (int i=0; i<n; i++) V.addElement(o[i]);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1156 of file Construction.java.

       {      Enumeration e=TranslatorList.elements();
              while (e.hasMoreElements())
              {      Translator t=(Translator)e.nextElement();
                     t.laterTranslate(from);
              }
       }

Here is the caller graph for this function:

Definition at line 271 of file Construction.java.

       {      Enumeration e=elements();
              while (e.hasMoreElements())
              {      ((ConstructionObject)e.nextElement()).save(xml);
              }
              Changed=false;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 257 of file Construction.java.

       {      if (s.length()<=2) s="";
              Comment=s;
       }

Here is the caller graph for this function:

void rene.zirkel.construction.Construction.setH ( double  h) [inline]

Definition at line 266 of file Construction.java.

{ H=h; }

Definition at line 811 of file Construction.java.

       {      JobComment=s;
       }

Here is the caller graph for this function:

Reset the constuction to the original order, saving the current one, or use the current one again.

Parameters:
originalor current

Definition at line 1189 of file Construction.java.

       {      if (V==null) return;
              if (flag)
              {      ConstructionObject o[]=new ConstructionObject[V.size()];
                     V.copyInto(o);
                     for (int i=0; i<o.length; i++) o[i].Value=(o[i].getNCount());
                     Sorter.sort(o);
                     Vector W=new Vector();
                     for (int i=0; i<o.length; i++) W.addElement(o[i]);
                     VOld=V;
                     V=W;
              }
              else if (VOld!=null)
              {      V=VOld;
                     VOld=null;
              }
       }

Here is the call graph for this function:

Mark all parameter objects as constructables.

Definition at line 1074 of file Construction.java.

       {      Enumeration e=elements();
              while (e.hasMoreElements())
              {      ConstructionObject o=(ConstructionObject)e.nextElement();
                     if (o.isParameter() || o.isMainParameter())
                            o.setFlag(true);
              }
       }

Here is the call graph for this function:

void rene.zirkel.construction.Construction.setPixel ( double  pixel) [inline]

Called by the ZirkelCanvas to set the pixel per units.

This is used by the pixel() function in Expression.

Parameters:
pixel

Definition at line 1248 of file Construction.java.

       {      Pixel=pixel;
       }

Definition at line 1211 of file Construction.java.

       {      TranslateInto=C;
       }

Here is the caller graph for this function:

void rene.zirkel.construction.Construction.setXYW ( double  x,
double  y,
double  w 
) [inline]

Definition at line 267 of file Construction.java.

       {      X=x; Y=y; W=w;
       }

Here is the caller graph for this function:

Definition at line 1091 of file Construction.java.

       {      return ShouldSwitch;
       }

Definition at line 1099 of file Construction.java.

       {      ShouldSwitch=flag; NoteSwitch=note;
       }

Definition at line 1103 of file Construction.java.

       {      ShouldSwitch=flag; NoteSwitch=true;
       }

Definition at line 1107 of file Construction.java.

       {      Enumeration e=elements();
              while (e.hasMoreElements())
              {      ConstructionObject o=(ConstructionObject)e.nextElement();
                     if (o instanceof IntersectionObject)
                            ((IntersectionObject)o).switchBack();
              }
       }

Here is the call graph for this function:

void rene.zirkel.construction.Construction.testParameter ( ConstructionObject  o) throws ConstructionException [inline]

Definition at line 858 of file Construction.java.

       {      throw new ConstructionException(Zirkel.name("exception.null"));
       }      

Here is the call graph for this function:

Definition at line 461 of file Construction.java.

       {      Enumeration e=V.elements();
              while (e.hasMoreElements())
              {      ((ConstructionObject)e.nextElement()).translateOffset(zc);
              }
       }

Restore all elements from Undo.

Definition at line 190 of file Construction.java.

       {      if (Undo.isEmpty()) return;
              ConstructionObject o[]=new ConstructionObject[Undo.size()];
              Undo.copyInto(o);
              for (int i=o.length-1; i>=0; i--)
              {      V.addElement(o[i]);
                     o[i].setConstruction(this);
              }
              Undo.removeAllElements();
              haveChanged();
       }

Here is the call graph for this function:

Definition at line 815 of file Construction.java.

       {      Enumeration e=V.elements();
              while (e.hasMoreElements())
              {      ((ConstructionObject)e.nextElement()).clearCircleDep();
              }
              e=V.elements();
              while (e.hasMoreElements())
              {      ((ConstructionObject)e.nextElement()).updateCircleDep();
              }
       }

Here is the caller graph for this function:

Set the count the maximal count number of all objects plus 1.

(After loading e.g.)

Definition at line 1172 of file Construction.java.

       {      int max=0;
              Enumeration e=V.elements();
              while (e.hasMoreElements())
              {      int n=((ConstructionObject)e.nextElement()).getNCount();
                     if (n>max) max=n;
              }
              Count=max+1;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.construction.Construction.updateTexts ( ConstructionObject  o,
String  oldname 
) [inline]

Update the texts of all objects that contain oldname, but not of the object o itself.

Parameters:
o
oldname

Definition at line 800 of file Construction.java.

       {      Enumeration e=V.elements();
              while (e.hasMoreElements())
              {      ConstructionObject u=(ConstructionObject)e.nextElement();
                     if (dependsDirectlyOn(u,o)) u.updateText();
              }
       }

Here is the call graph for this function:

void rene.zirkel.construction.Construction.validate ( ConstructionObject  o,
ConstructionObject  avoid 
) [inline]

Validate only o and those objects it depends on.

This is a recursive function. To avoid problems with cycles we set flags.

Parameters:
o

Definition at line 931 of file Construction.java.

       {      if (o.RekValidating) return; // should not happen!
              o.RekValidating=true;
              if (o.VRek==null) o.VRek=new MyVector();
              else o.VRek.removeAllElements();
              Enumeration e=elements();
              while (e.hasMoreElements())
              {      ((ConstructionObject)e.nextElement()).setRekFlag(false);
              }
              recursiveValidate(o,avoid);
              e=elements();
              while (e.hasMoreElements())
              {      ConstructionObject oc=(ConstructionObject)e.nextElement();
                     if (oc.isRekFlag()) o.VRek.addElement(oc);
              }
              // System.out.println("---");
              e=o.VRek.elements();
              while (e.hasMoreElements())
              {      ConstructionObject oc=(ConstructionObject)e.nextElement();
                     oc.validate();
                     // System.out.println("Validating "+oc.getName());
              }             
              o.RekValidating=false;
       }

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

AddEventListener rene.zirkel.construction.Construction.AEL = null [private]

Definition at line 89 of file Construction.java.

Definition at line 49 of file Construction.java.

Definition at line 287 of file Construction.java.

Definition at line 285 of file Construction.java.

Definition at line 289 of file Construction.java.

Definition at line 283 of file Construction.java.

Definition at line 284 of file Construction.java.

Definition at line 279 of file Construction.java.

Definition at line 288 of file Construction.java.

Definition at line 281 of file Construction.java.

Definition at line 291 of file Construction.java.

Definition at line 59 of file Construction.java.

Definition at line 45 of file Construction.java.

Definition at line 56 of file Construction.java.

Definition at line 1139 of file Construction.java.

Definition at line 32 of file Construction.java.

Definition at line 57 of file Construction.java.

Definition at line 53 of file Construction.java.

Definition at line 55 of file Construction.java.

Definition at line 54 of file Construction.java.

Definition at line 60 of file Construction.java.

Vector rene.zirkel.construction.Construction.Errors = new Vector() [package]

Definition at line 1219 of file Construction.java.

Definition at line 35 of file Construction.java.

Definition at line 46 of file Construction.java.

Definition at line 286 of file Construction.java.

Definition at line 863 of file Construction.java.

Definition at line 879 of file Construction.java.

Definition at line 32 of file Construction.java.

Definition at line 44 of file Construction.java.

Definition at line 1215 of file Construction.java.

Definition at line 43 of file Construction.java.

Definition at line 696 of file Construction.java.

Definition at line 1089 of file Construction.java.

Initial value:
       
              {      new PointConstructor(),
                     new LineConstructor(),
                     new SegmentConstructor(),
                     new RayConstructor(),
                     new CircleConstructor(),
                     new IntersectionConstructor(),
                     new ParallelConstructor(),
                     new PlumbConstructor(),
                     new Circle3Constructor(),
                     new MidpointConstructor(),
                     new AngleConstructor(),
                     new BoundedPointConstructor(),
                     new ExpressionConstructor(),
                     new AreaConstructor(),
                     new TextConstructor(),
                     new QuadricConstructor(),
                     new ImageConstructor(),
                     new ObjectTracker(),
                     new FunctionConstructor()
              }

Definition at line 62 of file Construction.java.

Definition at line 47 of file Construction.java.

Definition at line 282 of file Construction.java.

Definition at line 49 of file Construction.java.

Definition at line 30 of file Construction.java.

Definition at line 37 of file Construction.java.

Definition at line 39 of file Construction.java.

Definition at line 1241 of file Construction.java.

Reimplemented in rene.zirkel.macro.Macro.

Definition at line 33 of file Construction.java.

Reimplemented in rene.zirkel.macro.Macro.

Definition at line 34 of file Construction.java.

Definition at line 290 of file Construction.java.

Definition at line 38 of file Construction.java.

Definition at line 28 of file Construction.java.

Definition at line 1089 of file Construction.java.

Definition at line 50 of file Construction.java.

Definition at line 41 of file Construction.java.

Definition at line 42 of file Construction.java.

Definition at line 48 of file Construction.java.

Definition at line 51 of file Construction.java.

Definition at line 31 of file Construction.java.

Definition at line 279 of file Construction.java.

Definition at line 279 of file Construction.java.

Definition at line 279 of file Construction.java.

Definition at line 280 of file Construction.java.

Definition at line 58 of file Construction.java.

Definition at line 1150 of file Construction.java.

Vector rene.zirkel.construction.Construction.Undo = new Vector() [package]

Definition at line 148 of file Construction.java.

Definition at line 29 of file Construction.java.

Definition at line 40 of file Construction.java.

Definition at line 1182 of file Construction.java.

Definition at line 35 of file Construction.java.

Definition at line 35 of file Construction.java.

Definition at line 35 of file Construction.java.


The documentation for this class was generated from the following file: