Back to index

wims  3.65+svn20090927
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Attributes | Static Protected Attributes | Package Attributes | Static Package Attributes
rene.zirkel.objects.PrimitiveLineObject Class Reference
Inheritance diagram for rene.zirkel.objects.PrimitiveLineObject:
Inheritance graph
[legend]
Collaboration diagram for rene.zirkel.objects.PrimitiveLineObject:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 PrimitiveLineObject (Construction c)
String getTag ()
void paint (MyGraphics g, ZirkelCanvas zc)
boolean canKeepClose ()
void setKeepClose (double x, double y)
boolean nearto (int c, int r, ZirkelCanvas zc)
 Test, if this object is chosen with coordinates x,y.
boolean onlynearto (int c, int r, ZirkelCanvas zc)
 Test, if this object must be chosen with coordinates x,y, assuming it is near to these coordinates.
double getDX ()
double getDY ()
double getX ()
double getY ()
void edit (ZirkelCanvas zc)
String getEquation ()
boolean contains (double x, double y)
 Test, if the projection of (x,y) to the line contains that point.
void printArgs (XmlWriter xml)
double project (double x, double y)
boolean equals (ConstructionObject o)
PointObject getP1 ()
Enumeration points ()
boolean locallyLike (ConstructionObject o)
boolean isPartial ()
void setPartial (boolean partial)
void addDep (PointObject p)
void clearCircleDep ()
void project (PointObject P)
void project (PointObject P, double alpha)
boolean canInteresectWith (ConstructionObject o)
boolean isGotNCount ()
void setGotNCount (boolean gotNCount)
void setName ()
 Sets a unique name for the object.
void setName (String n)
int getN ()
ConstructionObject getTranslation ()
 This is used to define macros and run them.
void setTranslation (ConstructionObject t)
void translate ()
 Override in children! This translates the mother items.
boolean nearto (int x, int y, boolean ignorefill, ZirkelCanvas zc)
 Test, if this object is chosen with coordinates x,y.
boolean textcontains (int x, int y, ZirkelCanvas zc)
void setSelected (boolean flag)
void setStrongSelected (boolean flag)
boolean isStrongSelected ()
boolean selected ()
void setLabelSelected (boolean flag)
boolean isSelectable ()
void validate ()
boolean valid ()
boolean displays (ZirkelCanvas zc)
boolean indicated ()
void setIndicated (boolean f)
void setIndicated (boolean f, boolean showname)
double changedBy ()
void setText (String s, boolean user)
void setText (String s)
String getText ()
boolean labelSelected ()
void setColor (int index)
 Set the object color by index.
int getColorIndex (boolean original)
 Get the current color index.
int getColorIndex ()
Color getColor ()
boolean mustHide (ZirkelCanvas zc)
void setHidden (boolean flag)
void setSuperHidden (boolean flag)
void toggleHidden ()
boolean isHidden (boolean original)
boolean isHidden ()
boolean isSuperHidden (boolean original)
boolean isSuperHidden ()
String getName ()
void setNameCheck (String n) throws ConstructionException
void setNameWithNumber (String n)
void drawLabel (MyGraphics g, String s)
 Service routine to draw a string from upper left coordinates.
void drawLabel (MyGraphics g, String s, ZirkelCanvas zc, double x, double y, double vx, double vy, double xo, double yo)
 Service routine to draw a string at x,y but offset into direction -vy,vx so that it does not intersect the direction vx,vy.
void setFont (MyGraphics g)
void drawCenteredLabel (MyGraphics g, String s, ZirkelCanvas zc, double x, double y, double xo, double yo)
 Service routine to draw a string centered at x,y.
void drawPointLabel (MyGraphics g, String s, ZirkelCanvas zc, double x, double y, double vx, double vy, double xo, double yo)
 Service routine to draw a string at x,y but offset into direction -vy,vx so that it does not intersect the direction vx,vy.
void save (XmlWriter xml)
 Save the object in XML form.
void updateText ()
void setConstruction (Construction c)
boolean showName (boolean original)
boolean showName ()
void setShowName (boolean f)
boolean showValue (boolean original)
boolean showValue ()
void setShowValue (boolean f)
String getDisplayText ()
 Determine the string to be displayed onscreen.
String replaceExpressions (String s)
 Replace the expression in %...% by their values.
void addDepInExpressions (String s)
 Add the dependencies in expressions in %...% in the string.
String translateExpressions (String s)
 Replace the expression in %...% by their translated epressions.
String getDisplayValue ()
 To be overridden by the objects.
String getSizeDisplay ()
double round (double x)
 Service function to round a value.
double round (double x, double Rounder)
void round ()
double roundDisplay (double x)
void setcOffset (double x, double y)
double xcOffset ()
double ycOffset ()
void setOffset (int x, int y)
boolean isKeepClose ()
void setKeepClose (boolean flag)
void translateOffset (ZirkelCanvas zc)
int getColorType (boolean original)
int getColorType ()
void setColorType (int type)
boolean isParameter ()
boolean isMainParameter ()
void clearParameter ()
void setMainParameter ()
void setParameter ()
Enumeration depending ()
 Return an enumeration of objects, that this object depends on.
boolean dependsOn (ConstructionObject o)
 Test, if the object directly depends on another object.
Enumeration secondaryParams ()
 Return an enumeration of objects, which can be set as secondary parameters, whenever this object is selected as main parameter.
ConstructionObject[] getDepArray ()
Enumeration depset (ConstructionObject o1)
Enumeration depset (ConstructionObject o1, ConstructionObject o2)
Enumeration depset (ConstructionObject o1, ConstructionObject o2, ConstructionObject o3)
void setFlag (boolean flag)
boolean isFlag ()
void setRekFlag (boolean flag)
boolean isRekFlag ()
void setTarget (boolean flag)
boolean isTarget ()
void setKeep (boolean flag)
boolean isKeep ()
boolean equals (double x, double y)
void setJobTarget (boolean flag)
boolean isJobTarget ()
void updateCircleDep ()
ConstructionObject copy ()
 This clones the object for macro construction.
Construction getConstruction ()
double getValue () throws ConstructionException
 Get the value of an object or throw an exception (e.g.
void setDefaults ()
void setTargetDefaults ()
boolean contains (PointObject p)
boolean canFix ()
void setFixed (String o)
boolean isBack (boolean original)
boolean isBack ()
void setBack (boolean flag)
void setInConstruction (boolean flag)
boolean isInConstruction ()
void laterBind (Construction c)
 This is called after the loading of a construction has been finished.
void laterTranslate (Construction c)
 This is called after macro definition or execution is complete.
void setFilled (boolean flag)
boolean isFilled ()
boolean isFilledForSelect ()
boolean getObtuse ()
void setObtuse (boolean flag)
String getDescription ()
boolean isFixed ()
boolean isBreak ()
void setBreak (boolean flag)
boolean isHideBreak ()
void setHideBreak (boolean flag)
boolean isSolid (boolean original)
boolean isSolid ()
void setSolid (boolean solid)
boolean maybeTransparent ()
int compare (SortObject o)
void setSelectable (boolean flag)
void snap (ZirkelCanvas zc)
String getUnit ()
void setUnit (String s)
boolean hasUnit ()
boolean isBreakHide ()
void setBreakHide (boolean flag)
String helpDisplayValue (boolean start, double x, String tag)
String helpDisplayNumber (boolean start, double x)
boolean visible (ZirkelCanvas zc)
boolean isBold ()
void setBold (boolean bold)
boolean isLarge ()
void setLarge (boolean large)
void addConditional (String tag, Expression expr)
Expression getConditional (String tag)
boolean haveConditional (String tag)
boolean testConditional (String tag)
 Test if the conditional "tag" evaluates to true.
void clearConditionals ()
void translateConditionals ()
boolean haveConditionals ()
void checkConditionals () throws ConstructionException
double getZ () throws ConstructionException
 Get the z-buffer for this object.
boolean canDisplayName ()
int getNCount ()
void setNCount (int count)
String getAlias ()
void setAlias (String s)
String getElementString (int state)
 Get a display string for the Lister class.
String getElementString ()
Color getElementColor ()
 Get a color for the element in the display color.
boolean isSpecialParameter ()
void setSpecialParameter (boolean flag)
MyVector getVector ()
 Get an empty MyVector.
void discardMV ()
 MyVector no longer needed.

Static Public Member Functions

static Coordinates intersect (PrimitiveLineObject l1, PrimitiveLineObject l2)
static Coordinates intersect (PrimitiveLineObject l, PrimitiveCircleObject c)
static String text1 (String format, String s1)
 Routines to parse descriptive text in various languages.
static String text2 (String format, String s1, String s2)
static String text3 (String format, String s1, String s2, String s3)
static String text4 (String format, String s1, String s2, String s3, String s4)
static String textAny (String format, String ss[])
static PointObject getPointObject (Expression E)
 Service function to extract a point from an expression.

Public Attributes

boolean Flag
int Scratch
double Value = 1000
MyVector VRek
 A general workplace for rekursive validation.
boolean RekValidating = false
boolean SpecialParameter = false

Static Public Attributes

static final int NORMAL = 0
static DepList DL = new DepList()
static final int DescriptionState = 0

Protected Attributes

double X1
PointObject P1
int ColorType = 0
 object color and static default color
Color C = Color.black
int ColorIndex = 0
boolean Selected = false
boolean StrongSelected = false
boolean Indicated = false
boolean ShowIndicatedName = false
boolean LabelSelected = false
boolean Valid = true
boolean Hidden = false
boolean SuperHidden = false
boolean BreakHide = false
boolean ShowName = false
boolean ShowValue = false
boolean Selectable = true
String Name = "Generic"
String Text = "???"
double XcOffset = 0.0
boolean KeepClose
boolean DisplaysText = false
double TX1
Construction Cn
boolean MainParameter
boolean Target
boolean Keep = false
boolean JobTarget = false
ConstructionObject Translation
boolean Back = false
boolean Obtuse = true
boolean Break = false
boolean HideBreak = false
boolean Solid = false
boolean inConstruction
String Unit = ""
boolean Bold = false
boolean Large = false
Vector Conditionals
int NCount = 0
boolean gotNCount = false

Static Protected Attributes

static int Count = 1

Package Attributes

double Y1
double DX
double DY
PointObject Dep []
int NDep
boolean Partial = false
double k1
double k2
boolean k12valid = false
int YOffset = 0
double YcOffset = 0.0
double TY1
double TX2
double TY2
boolean Parameter
boolean RekFlag
boolean IsDrawn
boolean HasZ
int OldColorIndex
ExpressionString AliasES = null
MyVector MV
boolean MVInUse = false

Static Package Attributes

static final int THICK = 1
static final int THIN = 2
static final int INVISIBLE = 3
static Count N = new Count()
static final int FormulaState = 1
static final int SizeState = 2

Detailed Description

Definition at line 120 of file PrimitiveLineObject.java.


Constructor & Destructor Documentation

Definition at line 128 of file PrimitiveLineObject.java.

       {      super(c);
              setColor(ColorIndex);
       }

Here is the call graph for this function:

Here is the caller graph for this function:


Member Function Documentation

void rene.zirkel.objects.ConstructionObject.addConditional ( String  tag,
Expression  expr 
) [inline, inherited]

Definition at line 1211 of file ConstructionObject.java.

       {      Conditional c=new Conditional(tag,expr);
              if (Conditionals==null) Conditionals=new Vector();
              Conditionals.addElement(c);
       }

Here is the caller graph for this function:

Definition at line 322 of file PrimitiveLineObject.java.

       {      if (!Partial || Dep==null || NDep>=Dep.length) return;
              Dep[NDep++]=p;
       } 
void rene.zirkel.objects.ConstructionObject.addDepInExpressions ( String  s) [inline, inherited]

Add the dependencies in expressions in %...% in the string.

Parameters:
s
zcmay be null (no direct search of object)
Returns:

Definition at line 698 of file ConstructionObject.java.

Here is the call graph for this function:

Implements rene.zirkel.objects.PointonObject.

Definition at line 341 of file PrimitiveLineObject.java.

       {      return true;
       }
double rene.zirkel.objects.ConstructionObject.changedBy ( ) [inline, inherited]
Returns:
The change of the last validation for points bound to lines, which are defined later.

Reimplemented in rene.zirkel.objects.PointObject.

Definition at line 213 of file ConstructionObject.java.

       {      return 0.0;
       }

Definition at line 1273 of file ConstructionObject.java.

       {      if (Conditionals==null) return;
              Enumeration e=Conditionals.elements();
              while (e.hasMoreElements())
              {      Conditional c=(Conditional)e.nextElement();
                     if (!c.getExpression().isValid())
                            throw new ConstructionException(c.getExpression().getErrorText());
                     c.getExpression().getValue();
              }             
       }

Here is the call graph for this function:

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 327 of file PrimitiveLineObject.java.

       {      NDep=0;
       }

Definition at line 1247 of file ConstructionObject.java.

       {      Conditionals=null;
       }

Here is the caller graph for this function:

Definition at line 839 of file ConstructionObject.java.

       {      Parameter=false; MainParameter=false;
       }
int rene.zirkel.objects.ConstructionObject.compare ( SortObject  o) [inline, inherited]

Definition at line 1132 of file ConstructionObject.java.

       {      ConstructionObject ob=(ConstructionObject)o;
              if (ob.Value<Value) return 1;
              else if (ob.Value==Value) return 0;
              else return -1;
       }

Here is the call graph for this function:

boolean rene.zirkel.objects.PrimitiveLineObject.contains ( double  x,
double  y 
) [inline]

Test, if the projection of (x,y) to the line contains that point.

Reimplemented in rene.zirkel.objects.FixedAngleObject, rene.zirkel.objects.SegmentObject, and rene.zirkel.objects.RayObject.

Definition at line 275 of file PrimitiveLineObject.java.

       {      return true;
       }

Reimplemented in rene.zirkel.objects.CircleObject, rene.zirkel.objects.PlumbObject, rene.zirkel.objects.ParallelObject, and rene.zirkel.objects.TwoPointLineObject.

Definition at line 1013 of file ConstructionObject.java.

       {      return false;
       }

Here is the caller graph for this function:

This clones the object for macro construction.

NOTE: This must be overriden in all items to translate the mother objects.

Reimplemented in rene.zirkel.objects.ExpressionObject, rene.zirkel.objects.QuadricObject, rene.zirkel.objects.PrimitiveCircleObject, and rene.zirkel.objects.ImageObject.

Definition at line 965 of file ConstructionObject.java.

       {      ConstructionObject o=null;
              try
              {      o=(ConstructionObject)clone();
                     setTranslation(o);
                     o.translateConditionals();
                     o.translate();
                     o.setName();
                     o.updateText();
                     o.setBreak(false);
                     // o.setTarget(false);
              }
              catch (Exception e) {}
              return o;
       }      

Here is the call graph for this function:

Enumeration rene.zirkel.objects.ConstructionObject.depending ( ) [inline, inherited]

Return an enumeration of objects, that this object depends on.

This should usually called from children via super.

Reimplemented in rene.zirkel.objects.PointObject, rene.zirkel.objects.FunctionObject, rene.zirkel.objects.FixedAngleObject, rene.zirkel.objects.ExpressionObject, rene.zirkel.objects.AngleObject, rene.zirkel.objects.TextObject, rene.zirkel.objects.TrackObject, rene.zirkel.objects.SegmentObject, rene.zirkel.objects.PrimitiveCircleObject, rene.zirkel.objects.UserFunctionObject, rene.zirkel.objects.QuadricObject, rene.zirkel.objects.AreaObject, rene.zirkel.objects.CircleObject, rene.zirkel.objects.FixedCircleObject, rene.zirkel.objects.IntersectionObject, rene.zirkel.objects.ImageObject, rene.zirkel.objects.PlumbObject, rene.zirkel.objects.Circle3Object, rene.zirkel.objects.MidpointObject, rene.zirkel.objects.ParallelObject, and rene.zirkel.objects.TwoPointLineObject.

Definition at line 860 of file ConstructionObject.java.

       {      DL.reset();
              if (haveConditionals())
              {      Enumeration e=Conditionals.elements();
                     while (e.hasMoreElements())
                     {      Conditional c=(Conditional)e.nextElement();
                            Enumeration ex=c.getExpression().getDepList().elements();
                            while (ex.hasMoreElements())
                            {      DL.add((ConstructionObject)ex.nextElement());
                            }
                     }
              }
              if (AliasES!=null) AliasES.addDep(this);
              return DL.elements();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Test, if the object directly depends on another object.

Definition at line 879 of file ConstructionObject.java.

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

Here is the call graph for this function:

Here is the caller graph for this function:

Enumeration rene.zirkel.objects.ConstructionObject.depset ( ConstructionObject  o1) [inline, inherited]

Definition at line 902 of file ConstructionObject.java.

       {      DL.add(o1);
              return DL.elements();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 907 of file ConstructionObject.java.

       {      DL.add(o1);
              DL.add(o2);
              return DL.elements();
       }

Here is the call graph for this function:

Definition at line 913 of file ConstructionObject.java.

       {      DL.add(o1);
              DL.add(o2);
              DL.add(o3);
              return DL.elements();
       }

Here is the call graph for this function:

MyVector no longer needed.

Definition at line 1398 of file ConstructionObject.java.

       {      MVInUse=false;
              MV.removeAllElements();
       }

Here is the call graph for this function:

Definition at line 194 of file ConstructionObject.java.

       {      if (SuperHidden) return false;
              if (!zc.showHidden() && (testConditional("hidden") || testConditional("superhidden"))) 
                     return false;
              return Valid && !BreakHide && (!Hidden || zc.showHidden());
       }

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.drawCenteredLabel ( MyGraphics  g,
String  s,
ZirkelCanvas  zc,
double  x,
double  y,
double  xo,
double  yo 
) [inline, inherited]

Service routine to draw a string centered at x,y.

Definition at line 447 of file ConstructionObject.java.

       {      int ws=g.stringWidth(s),hs=g.stringHeight(s);
              TX1=zc.col(x+xo)-ws/2; 
              TY1=zc.row(y+yo)-hs/2;
              g.drawStringExtended(s,TX1,TY1);
              TX2=TX1+ws;
              TY2=TY1+hs;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.drawLabel ( MyGraphics  g,
String  s 
) [inline, inherited]

Service routine to draw a string from upper left coordinates.

Position is at TX1, TX2.

Definition at line 434 of file ConstructionObject.java.

       {      g.drawStringExtended(s,TX1,TY1);
              TX2=TX1+g.stringWidth(s);
              TY2=TY1+g.stringHeight(s);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.drawLabel ( MyGraphics  g,
String  s,
ZirkelCanvas  zc,
double  x,
double  y,
double  vx,
double  vy,
double  xo,
double  yo 
) [inline, inherited]

Service routine to draw a string at x,y but offset into direction -vy,vx so that it does not intersect the direction vx,vy.

r=(vx,vy) is assumed to be normalized.

Definition at line 462 of file ConstructionObject.java.

       {      int ws=g.stringWidth(s),hs=g.stringHeight(s);
              double w=zc.dx(ws),h=zc.dy(hs);
              double d1=Math.abs(-w*vy+h*vx);
              double d2=Math.abs(w*vy+h*vx);
              double d=d1;
              if (d2>d) d=d2;
              double dd=zc.dy(2*zc.pointSize());
              TX1=zc.col(x-vy*(d+3*dd)/2+xo)-ws/2; 
              TY1=zc.row(y+vx*(d+3*dd)/2+yo)-hs/2;
              g.drawStringExtended(s,TX1,TY1);
              TX2=TX1+ws; TY2=TY1+hs;
       }

Here is the call graph for this function:

void rene.zirkel.objects.ConstructionObject.drawPointLabel ( MyGraphics  g,
String  s,
ZirkelCanvas  zc,
double  x,
double  y,
double  vx,
double  vy,
double  xo,
double  yo 
) [inline, inherited]

Service routine to draw a string at x,y but offset into direction -vy,vx so that it does not intersect the direction vx,vy.

r=(vx,vy) is assumed to be normalized.

Definition at line 482 of file ConstructionObject.java.

       {      int ws=g.stringWidth(s),hs=g.stringHeight(s);
              double w=zc.dx(ws),h=zc.dy(hs);
              double d1=Math.abs(-w*vy+h*vx);
              double d2=Math.abs(w*vy+h*vx);
              double d=d1;
              if (d2>d) d=d2;
              double dd=zc.dy(2*zc.pointSize());
              if (Math.abs(d*vx)>h+2*dd)
              {      d=Math.abs((h+2*dd)/vx);
              }
              double xp=x-vy*d/2,yp=y+vx*d/2;
              TX1=zc.col(xp-vy*dd*1.5+xo)-ws/2; 
              TY1=zc.row(yp+vx*dd*1.5+yo)-hs/2;
              g.drawStringExtended(s,TX1,TY1);
              TX2=TX1+ws; TY2=TY1+hs;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Reimplemented from rene.zirkel.objects.ConstructionObject.

Reimplemented in rene.zirkel.objects.FixedAngleObject, and rene.zirkel.objects.SegmentObject.

Definition at line 242 of file PrimitiveLineObject.java.

       {      ObjectEditDialog d=new LineEditDialog(zc.getFrame(),this);
              d.setVisible(true);
              zc.getConstruction().updateCircleDep(); 
              zc.repaint();
              if (d.wantsMore())
              {      new EditConditionals(zc.getFrame(),this);
                     validate();
              }
       }

Here is the call graph for this function:

Reimplemented from rene.zirkel.objects.ConstructionObject.

Reimplemented in rene.zirkel.objects.SegmentObject, and rene.zirkel.objects.RayObject.

Definition at line 287 of file PrimitiveLineObject.java.

       {      if (!(o instanceof PrimitiveLineObject) || !o.valid()) return false;
              PrimitiveLineObject l=(PrimitiveLineObject)o;
              return equals(DX*l.DY-DY*l.DX,0) &&
                     equals((X1-l.X1)*DY-(Y1-l.Y1)*DX,0);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

boolean rene.zirkel.objects.ConstructionObject.equals ( double  x,
double  y 
) [inline, inherited]

Definition at line 936 of file ConstructionObject.java.

       {      return Math.abs(x-y)<1e-8;
       }
String rene.zirkel.objects.ConstructionObject.getAlias ( ) [inline, inherited]

Definition at line 1312 of file ConstructionObject.java.

       {      if (AliasES==null) return null;
              else return AliasES.toString();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Color rene.zirkel.objects.ConstructionObject.getColor ( ) [inline, inherited]

Definition at line 328 of file ConstructionObject.java.

       {      if (isJobTarget()) return ZirkelFrame.TargetColor;
              else if (selected()) return ZirkelFrame.SelectColor;
              else if (getColorType()==ConstructionObject.THIN)
              {      int i=getColorIndex();
                     if (isHidden()) return ZirkelFrame.BrighterLightColors[i];
                     else return ZirkelFrame.LightColors[i];                 
              }             
              else
              {      int i=getColorIndex();
                     if (isHidden()) return ZirkelFrame.BrighterColors[i];
                     else return ZirkelFrame.Colors[i];               
              }
       }

Here is the call graph for this function:

Here is the caller graph for this function:

int rene.zirkel.objects.ConstructionObject.getColorIndex ( boolean  original) [inline, inherited]

Get the current color index.

If there is a conditional for the color, test it and use it.

Definition at line 315 of file ConstructionObject.java.

       {      if (!original && haveConditionals())
              {      for (int i=0; i<ZirkelFrame.ColorStrings.length; i++)
                     {      if (testConditional(ZirkelFrame.ColorStrings[i]))
                                   return i;
                     }
              }
              return ColorIndex; 
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 324 of file ConstructionObject.java.

       {      return getColorIndex(false);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

int rene.zirkel.objects.ConstructionObject.getColorType ( boolean  original) [inline, inherited]

Definition at line 822 of file ConstructionObject.java.

       {      if (!original && testConditional("thin")) return THIN;
              if (!original && testConditional("thick")) return THICK;
              if (!original && testConditional("normal")) return NORMAL;
              return ColorType; 
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 828 of file ConstructionObject.java.

       {      return getColorType(false);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1217 of file ConstructionObject.java.

       {      if (Conditionals==null) return null;
              Enumeration e=Conditionals.elements();
              while (e.hasMoreElements())
              {      Conditional c=(Conditional)e.nextElement();
                     if (c.getTag().equals(tag))
                            return c.getExpression();
              }
              return null;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 981 of file ConstructionObject.java.

       {      return Cn;
       }      

Here is the caller graph for this function:

Definition at line 897 of file ConstructionObject.java.

       {      depending();
              return DL.getArray();
       }

Here is the call graph for this function:

Definition at line 1080 of file ConstructionObject.java.

       {      return "";
       }

Determine the string to be displayed onscreen.

Returns:
"", if there should be no display.

Definition at line 584 of file ConstructionObject.java.

       {      String name=Name;
              if (AliasES!=null)
              {      name=AliasES.evaluate();
              }
              else if (name.indexOf("~")>0)
              {      name=name.substring(0,name.indexOf("~"));
              }
              if (showName())
              {      if (showValue())
                     {      String value=getDisplayValue();
                            if (value.equals("")) return name;
                            if (name.endsWith("$")) name=name.substring(0,name.length()-1);
                            if (name.endsWith("_") && name.length()>1)
                            {      name=name.substring(0,name.length()-1);
                            }
                            else
                            {      name=name+" = ";
                            }
                            if (Unit.equals(""))
                                   return name+getDisplayValue();
                            else
                                   return name+getDisplayValue()+Unit;
                     }
                     else
                     {      if (name.indexOf("~")>0 && AliasES==null)
                            {      name=name.substring(0,name.indexOf("~"));
                            }
                            return name;
                     }
              }
              else if (showValue())
              {      if (Unit.equals(""))
                            return getDisplayValue();
                     else
                            return getDisplayValue()+Unit;
              }
              return "";
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 237 of file PrimitiveLineObject.java.

{ return DX; }

Here is the caller graph for this function:

Definition at line 238 of file PrimitiveLineObject.java.

{ return DY; }

Here is the caller graph for this function:

Get a color for the element in the display color.

Definition at line 1356 of file ConstructionObject.java.

       {      if (isJobTarget()) return ZirkelFrame.TargetColor;
              else if (indicated()) return ZirkelFrame.IndicateColor;
              else if (selected()) return ZirkelFrame.SelectColor;
              return getColor();
       }

Here is the call graph for this function:

String rene.zirkel.objects.ConstructionObject.getElementString ( int  state) [inline, inherited]

Get a display string for the Lister class.

Definition at line 1335 of file ConstructionObject.java.

       {      String s="";
              switch (state)
              {      case DescriptionState : s=getName()+" : "+FileName.chop(getText(),80); break;
                     case SizeState : s=getName()+" : "+FileName.chop(getSizeDisplay(),80); break;
                     case FormulaState : s=getName()+" : "+FileName.chop(getEquation(),80); break;
              }
              if (isSuperHidden()) s="( "+s+" )";
              if (isHideBreak()) s="** "+s;
              else if (isBreak()) s="* "+s;
              if (!valid()) s="? "+s;
              if (this instanceof MoveableObject && ((MoveableObject)this).moveable()) s="> "+s;
              return s;
       }

Here is the call graph for this function:

Definition at line 1349 of file ConstructionObject.java.

       {      return getElementString(0);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 253 of file PrimitiveLineObject.java.

       {      double y=DX,x=-DY;
              double c=y*Y1+x*X1;
              if (c<0)
              {      c=-c; x=-x; y=-y;
              }
              if (Math.abs(x)<1e-10 && y<0)
              {      c=-c; x=-x; y=-y;
              }
              else if  (Math.abs(y)<1e-10 && x<0)
              {      c=-c; x=-x; y=-y;
              }
              String s=helpDisplayValue(true,x,"x");
              return s+
                     helpDisplayValue(s.equals(""),y,"y")+"="+
                     ((Math.abs(c)<1e-10)?"0":helpDisplayNumber(true,c));
       }

Here is the call graph for this function:

int rene.zirkel.objects.ConstructionObject.getN ( ) [inline, inherited]
String rene.zirkel.objects.ConstructionObject.getName ( ) [inline, inherited]

Definition at line 382 of file ConstructionObject.java.

{ return Name; }

Definition at line 1302 of file ConstructionObject.java.

                              {
              return NCount;
       }

Definition at line 1073 of file ConstructionObject.java.

       {      return Obtuse;
       }

Here is the caller graph for this function:

Definition at line 294 of file PrimitiveLineObject.java.

       {      return P1;
       }

Here is the caller graph for this function:

Service function to extract a point from an expression.

Parameters:
E
Returns:
point object or null

Definition at line 1372 of file ConstructionObject.java.

       {      if (E==null) return null;
              ConstructionObject o=E.getObject();
              if (o==null || !(o instanceof PointObject)) return null;
              return (PointObject)o;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 770 of file ConstructionObject.java.

       {      return getDisplayValue()+getUnit();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

String rene.zirkel.objects.ConstructionObject.getText ( ) [inline, inherited]

Definition at line 291 of file ConstructionObject.java.

       {      return Text;
       }

Here is the caller graph for this function:

This is used to define macros and run them.

The items of the construction are translated to macro items.

Definition at line 140 of file ConstructionObject.java.

       {      return Translation;
       }

Here is the caller graph for this function:

String rene.zirkel.objects.ConstructionObject.getUnit ( ) [inline, inherited]

Definition at line 1147 of file ConstructionObject.java.

       {      return Unit;
       }      

Here is the caller graph for this function:

Get the value of an object or throw an exception (e.g.

if invalid). Not all objects have a value.

Reimplemented in rene.zirkel.objects.AngleObject, rene.zirkel.objects.FixedAngleObject, rene.zirkel.objects.ExpressionObject, rene.zirkel.objects.FunctionObject, rene.zirkel.objects.AreaObject, rene.zirkel.objects.SegmentObject, rene.zirkel.objects.UserFunctionObject, rene.zirkel.objects.CircleObject, rene.zirkel.objects.FixedCircleObject, and rene.zirkel.objects.Circle3Object.

Definition at line 989 of file ConstructionObject.java.

       {      throw new NoValueException(Valid);
       }

Here is the caller graph for this function:

Get an empty MyVector.

Returns:
MyVector instance

Definition at line 1388 of file ConstructionObject.java.

       {      if (MVInUse) return new MyVector();
              if (MV==null) MV=new MyVector();
              MVInUse=true;
              return MV;
       }

Definition at line 239 of file PrimitiveLineObject.java.

{ return X1; }

Here is the caller graph for this function:

Definition at line 240 of file PrimitiveLineObject.java.

{ return Y1; }

Here is the caller graph for this function:

Get the z-buffer for this object.

Returns:
double value z
Exceptions:
ConstructionException

Definition at line 1290 of file ConstructionObject.java.

       {      Expression e=getConditional("z");
              if (e==null)
                     throw new ConstructionException("");
              return e.getValue();
       }

Here is the call graph for this function:

Definition at line 1228 of file ConstructionObject.java.

       {      Expression ex=getConditional(tag);
              return (ex!=null);
       }

Here is the call graph for this function:

Definition at line 1269 of file ConstructionObject.java.

       {      return Conditionals!=null;
       }

Here is the caller graph for this function:

String rene.zirkel.objects.ConstructionObject.helpDisplayNumber ( boolean  start,
double  x 
) [inline, inherited]

Definition at line 1181 of file ConstructionObject.java.

       {      String s="";
              if (Math.abs(x)<1e-10) return s;
              if (x<0) s="-";
              else if (!start) s="+";
              x=Math.abs(x);
              return s+roundDisplay(x);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

String rene.zirkel.objects.ConstructionObject.helpDisplayValue ( boolean  start,
double  x,
String  tag 
) [inline, inherited]

Definition at line 1168 of file ConstructionObject.java.

       {      String s="";
              if (Math.abs(x)<1e-10) return s;
              if (x<0) s="-";
              else if (!start) s="+";
              x=Math.abs(x);
              if (Math.abs(x-1)>1e-10)
                     s=s+roundDisplay(x);
              if (tag.equals("")) return s;
              else if (s.equals("") || s.equals("-")) return s+tag;
              else return s+"*"+tag;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 201 of file ConstructionObject.java.

{ return Indicated; }

Here is the caller graph for this function:

Reimplemented in rene.zirkel.objects.RayObject.

Definition at line 216 of file PrimitiveLineObject.java.

       {      double det=-l1.DX*l2.DY+l1.DY*l2.DX;
              if (Math.abs(det)<1e-10) return null;
              double a=(-(l2.X1-l1.X1)*l2.DY+(l2.Y1-l1.Y1)*l2.DX)/det;
              return new Coordinates(l1.X1+a*l1.DX,l1.Y1+a*l1.DY);
       }

Here is the caller graph for this function:

Reimplemented in rene.zirkel.objects.RayObject.

Definition at line 225 of file PrimitiveLineObject.java.

       {      double x=c.getX(),y=c.getY(),r=c.getR();
              double d=(x-l.X1)*l.DY-(y-l.Y1)*l.DX;
              if (Math.abs(d)>r+1e-10) return null;
              x-=d*l.DY; y+=d*l.DX;
              double h=r*r-d*d;
              if (h>0) h=Math.sqrt(h);
              else h=0;
              return new Coordinates(x+h*l.DX,y+h*l.DY,x-h*l.DX,y-h*l.DY);
       }

Here is the call graph for this function:

Definition at line 1025 of file ConstructionObject.java.

       {      if (!original && testConditional("background")) return true;
              return Back;
       }

Here is the call graph for this function:

Definition at line 1029 of file ConstructionObject.java.

       {      return isBack(false);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1195 of file ConstructionObject.java.

       {      return Bold;
       }

Definition at line 1092 of file ConstructionObject.java.

       {      return Break;
       }

Here is the caller graph for this function:

Definition at line 1157 of file ConstructionObject.java.

       {      return BreakHide;
       }

Reimplemented in rene.zirkel.objects.TrackObject, rene.zirkel.objects.FixedAngleObject, and rene.zirkel.objects.FixedCircleObject.

Definition at line 1088 of file ConstructionObject.java.

       {      return false;
       }      

Here is the caller graph for this function:

Definition at line 922 of file ConstructionObject.java.

{ return Flag; }

Here is the caller graph for this function:

Definition at line 103 of file ConstructionObject.java.

                                    {
              return gotNCount;
       }

Definition at line 364 of file ConstructionObject.java.

       {      if (!original && testConditional("visible")) return false;
              if (!original && (testConditional("hidden") || testConditional("superhidden"))) 
                     return true;
              return Hidden || SuperHidden; 
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 370 of file ConstructionObject.java.

       {      return isHidden(false);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1101 of file ConstructionObject.java.

       {      return HideBreak;
       }

Here is the caller graph for this function:

Definition at line 1039 of file ConstructionObject.java.

       {      return inConstruction;
       }

Here is the caller graph for this function:

Definition at line 949 of file ConstructionObject.java.

       {      return JobTarget;
       }

Here is the caller graph for this function:

Definition at line 931 of file ConstructionObject.java.

{ return Keep; } 

Here is the caller graph for this function:

Definition at line 799 of file ConstructionObject.java.

       {      return KeepClose;
       }

Here is the caller graph for this function:

Definition at line 1202 of file ConstructionObject.java.

       {      return Large; 
       }

Definition at line 838 of file ConstructionObject.java.

{ return MainParameter; }

Here is the caller graph for this function:

Definition at line 837 of file ConstructionObject.java.

{ return Parameter || MainParameter; }

Here is the caller graph for this function:

Definition at line 310 of file PrimitiveLineObject.java.

{ return Partial; }

Here is the caller graph for this function:

Definition at line 925 of file ConstructionObject.java.

{ return RekFlag; }

Definition at line 187 of file ConstructionObject.java.

       {      return valid() && !JobTarget && Selectable; 
       }

Here is the call graph for this function:

Definition at line 1110 of file ConstructionObject.java.

       {      if (!original && testConditional("solid")) return true;
              return Solid;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1114 of file ConstructionObject.java.

       {      return isSolid(false);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1364 of file ConstructionObject.java.

{ return SpecialParameter; }

Definition at line 184 of file ConstructionObject.java.

{ return StrongSelected; }

Here is the caller graph for this function:

Definition at line 373 of file ConstructionObject.java.

       {      if (!original && testConditional("superhidden")) 
                     return true;
              return SuperHidden; 
       }

Here is the call graph for this function:

Definition at line 378 of file ConstructionObject.java.

       {      return isSuperHidden(false);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 928 of file ConstructionObject.java.

{ return Target; }

Here is the caller graph for this function:

Definition at line 295 of file ConstructionObject.java.

       {      return LabelSelected;
       }

Here is the caller graph for this function:

This is called after the loading of a construction has been finished.

PointObject uses this to bind to a line or circle, which is defined AFTER it.

Parameters:
cThe construction this object is in.

Reimplemented in rene.zirkel.objects.PointObject.

Definition at line 1049 of file ConstructionObject.java.

       {
       }

This is called after macro definition or execution is complete.

PrimitiveCircleObject uses it to translate the restriction points in its copy.

Parameters:
cThe construction this object is in.

Definition at line 1059 of file ConstructionObject.java.

       {      
       }

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 302 of file PrimitiveLineObject.java.

       {      if (!(o instanceof PrimitiveLineObject)) return false;
              return (equals(DX,((PrimitiveLineObject)o).DX) &&
                     equals(DY,((PrimitiveLineObject)o).DY)) ||
                            (equals(-DX,((PrimitiveLineObject)o).DX) &&
                     equals(-DY,((PrimitiveLineObject)o).DY));
       }

Here is the call graph for this function:

Reimplemented in rene.zirkel.objects.TextObject.

Definition at line 344 of file ConstructionObject.java.

       {      if (!Valid) return true;
              if (ColorIndex>0 && zc.getShowColor()!=0 && 
                     zc.getShowColor()!=ColorIndex) return true;
              if (JobTarget && Hidden) return true;
              return SuperHidden || testConditional("superhidden") || BreakHide ||
                     zc.hides(this) || (isHidden() && !zc.showHidden());
       }

Here is the call graph for this function:

Here is the caller graph for this function:

boolean rene.zirkel.objects.ConstructionObject.nearto ( int  x,
int  y,
boolean  ignorefill,
ZirkelCanvas  zc 
) [inline, inherited]

Test, if this object is chosen with coordinates x,y.

Reimplemented in rene.zirkel.objects.AreaObject, and rene.zirkel.objects.PrimitiveCircleObject.

Definition at line 165 of file ConstructionObject.java.

       {      return nearto(x,y,zc);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Test, if this object is chosen with coordinates x,y.

Reimplemented from rene.zirkel.objects.ConstructionObject.

Reimplemented in rene.zirkel.objects.FixedAngleObject, rene.zirkel.objects.SegmentObject, rene.zirkel.objects.LineObject, and rene.zirkel.objects.RayObject.

Definition at line 200 of file PrimitiveLineObject.java.

       {      if (!displays(zc)) return false;
              //compute point at c,r
              double x=zc.x(c),y=zc.y(r);
              // compute distance from x,y
              double d=(x-X1)*DY-(y-Y1)*DX;
              // scale in screen coordinates
              Value=Math.abs(zc.col(zc.minX()+d)-zc.col(zc.minX()));
              return Value<zc.selectionSize()*2;
       }

Here is the call graph for this function:

Test, if this object must be chosen with coordinates x,y, assuming it is near to these coordinates.

Reimplemented from rene.zirkel.objects.ConstructionObject.

Reimplemented in rene.zirkel.objects.SegmentObject.

Definition at line 211 of file PrimitiveLineObject.java.

       {      return false;
       }

Reimplemented from rene.zirkel.objects.ConstructionObject.

Reimplemented in rene.zirkel.objects.FixedAngleObject, rene.zirkel.objects.SegmentObject, rene.zirkel.objects.RayObject, and rene.zirkel.objects.LineObject.

Definition at line 138 of file PrimitiveLineObject.java.

       {      if (!Valid || mustHide(zc)) return;
              //compute middle of the screen:
              double xm=(zc.minX()+zc.maxX())/2,ym=(zc.minY()+zc.maxY())/2;
              // compute distance from middle to line:
              double d=(xm-X1)*DY-(ym-Y1)*DX;
              // compute point with minimal distance
              double x=xm-d*DY,y=ym+d*DX;
              // compute size of the screen
              double a=Math.max(zc.maxX()-zc.minX(),zc.maxY()-zc.minY());
              if (Math.abs(d)>a) return;
              // compute distance from closest point to source
              double b=(x-X1)*DX+(y-Y1)*DY;
              // compute the two visible endpoints
              k1=b-a; k2=b+a; k12valid=true;
              if (Partial && Dep!=null && !zc.showHidden())
              {      double dd=(zc.maxX()-zc.minX())/20;
                     double dmin=-dd,dmax=+dd;
                     if (Dep!=null)
                     {      for (int i=0; i<NDep; i++)
                            {      if (!Dep[i].valid() || Dep[i].mustHide(zc)) continue;
                                   double s=project(Dep[i].getX(),Dep[i].getY());
                                   if (s-dd<dmin) dmin=s-dd;
                                   else if (s+dd>dmax) dmax=s+dd;
                            }
                     }
                     if (k1<dmin) k1=dmin;
                     if (k2>dmax) k2=dmax;
              }
              double c1=zc.col(X1+k1*DX),c2=zc.col(X1+k2*DX),
                     r1=zc.row(Y1+k1*DY),r2=zc.row(Y1+k2*DY);
              // paint:
              if (isStrongSelected() && g instanceof MyGraphics13)
              {      ((MyGraphics13)g).drawMarkerLine(c1,r1,c2,r2);
              }
              g.setColor(this);
              g.drawLine(c1,r1,c2,r2,this);
              String s=getDisplayText();
              if (!s.equals(""))
              {      g.setLabelColor(this);
                     setFont(g);
                     DisplaysText=true;
                     if (KeepClose)
                     {      double side=(YcOffset<0)?1:-1;
                            drawLabel(g,s,zc,X1+XcOffset*DX,Y1+XcOffset*DY,
                                   side*DX,side*DY,0,0);
                     }
                     else
                            drawLabel(g,s,zc,x+a/5*DX,y+a/5*DY,DX,DY,XcOffset,YcOffset);
              }             
       }

Here is the call graph for this function:

Reimplemented in rene.zirkel.objects.FixedAngleObject.

Definition at line 298 of file PrimitiveLineObject.java.

       {      return depending();
       }

Here is the call graph for this function:

double rene.zirkel.objects.PrimitiveLineObject.project ( double  x,
double  y 
) [inline]

Reimplemented in rene.zirkel.objects.FixedAngleObject, rene.zirkel.objects.SegmentObject, and rene.zirkel.objects.RayObject.

Definition at line 283 of file PrimitiveLineObject.java.

       {      return (x-X1)*DX+(y-Y1)*DY;
       }

Here is the caller graph for this function:

Implements rene.zirkel.objects.PointonObject.

Reimplemented in rene.zirkel.objects.SegmentObject.

Definition at line 331 of file PrimitiveLineObject.java.

       {      double h=project(P.getX(),P.getY());
              P.setXY(getX()+h*getDX(),getY()+h*getDY());
              P.setA(h);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.objects.PrimitiveLineObject.project ( PointObject  P,
double  alpha 
) [inline]

Implements rene.zirkel.objects.PointonObject.

Reimplemented in rene.zirkel.objects.SegmentObject.

Definition at line 337 of file PrimitiveLineObject.java.

       {      P.setXY(getX()+alpha*getDX(),getY()+alpha*getDY());
       }

Here is the call graph for this function:

String rene.zirkel.objects.ConstructionObject.replaceExpressions ( String  s) [inline, inherited]

Replace the expression in %...% by their values.

Parameters:
s
zcmay be null (no direct search of object)
Returns:

Definition at line 630 of file ConstructionObject.java.

       {      // System.out.println(s);
              boolean latex=s.startsWith("$");
              int searchpos=0;
              while (s.indexOf("%",searchpos)>=0)
              {      int h1=s.indexOf("%",searchpos);
                     String s1=s.substring(h1+1);
                     int h2=s1.indexOf("%");
                     if (h2==0)
                     {      s=s.substring(0,h1)+"%"+s1.substring(1);
                            searchpos+=1;
                     }
                     else if (h2>=0)
                     {      String var=s1.substring(0,h2);
                            boolean showeq=false,forceplus=false;
                            if (var.startsWith("~")) // show equation
                            {      var=var.substring(1); showeq=true;
                            }
                            else if (var.startsWith("+")) // force +
                            {      var=var.substring(1); forceplus=true;
                            }
                            ConstructionObject o=getConstruction().find(var);
                            // System.out.println(o+" "+var);
                            String repl="";
                            if (o!=null) DL.add(o);
                            try
                            {      if (showeq) repl=o.getEquation();
                                   else
                                   {      if (o!=null)
                                          {      double x=round(o.getValue());
                                                 if (forceplus && x>=0) repl="+";
                                                 if (x==Math.floor(x+0.1)) repl=repl+(int)(x);
                                                 else repl=repl+x;
                                          }
                                          else
                                          {      Expression ex=new Expression(var,getConstruction(),this);
                                                 if (ex.isValid())
                                                 {      Enumeration e=ex.getDepList().elements();
                                                        while (e.hasMoreElements())
                                                        {      DL.add((ConstructionObject)e.nextElement());
                                                        }
                                                 }
                                                 double x=round(ex.getValue());
                                                 if (forceplus && x>=0) repl="+";
                                                 if (x==Math.floor(x+0.1)) repl=repl+(int)(x);
                                                 else repl=repl+x;
                                          }
                                   }
                            }
                            catch (Exception ex)
                            {      if (latex) repl="\\circ";
                                   else repl="???";
                                   // ex.printStackTrace();
                            }
                            s=s.substring(0,h1)+repl+s1.substring(h2+1);
                            searchpos=h1+repl.length();
                     }
                     else break;
              }
              return s;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

double rene.zirkel.objects.ConstructionObject.round ( double  x) [inline, inherited]

Service function to round a value.

Definition at line 777 of file ConstructionObject.java.

       {      return round(x,ZirkelCanvas.EditFactor);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

double rene.zirkel.objects.ConstructionObject.round ( double  x,
double  Rounder 
) [inline, inherited]

Definition at line 783 of file ConstructionObject.java.

       {      return Math.round(x*Rounder)/Rounder;
       }
void rene.zirkel.objects.ConstructionObject.round ( ) [inline, inherited]
double rene.zirkel.objects.ConstructionObject.roundDisplay ( double  x) [inline, inherited]

Definition at line 780 of file ConstructionObject.java.

       {      return round(x,ZirkelCanvas.LengthsFactor);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.save ( XmlWriter  xml) [inline, inherited]

Save the object in XML form.

Definition at line 504 of file ConstructionObject.java.

       {      xml.startTagStart(getTag());
              xml.printArg("name",Name);
              if (AliasES!=null) xml.printArg("alias",AliasES.toString());
              xml.printArg("n",""+NCount);
              if (ColorIndex!=0) xml.printArg("color",""+ColorIndex);
              if (ColorType==THICK) xml.printArg("type","thick");
              if (ColorType==THIN) xml.printArg("type","thin");
              if (ColorType==INVISIBLE) xml.printArg("type","invisible");
              if (SuperHidden) xml.printArg("hidden","super");
              else if (Hidden) xml.printArg("hidden","true");
              if (ShowName) xml.printArg("showname","true");
              if (ShowValue) xml.printArg("showvalue","true");
              if (Back) xml.printArg("background","true");
              if (XcOffset!=0.0) xml.printArg("xcoffset",""+XcOffset);
              if (YcOffset!=0.0) xml.printArg("ycoffset",""+YcOffset);
              if (KeepClose) xml.printArg("keepclose","true");
              if (Parameter) xml.printArg("parameter","true");
              if (MainParameter) xml.printArg("mainparameter","true");
              if (Target) xml.printArg("target","true");
              if (Break)
              {      if (HideBreak) xml.printArg("hidebreak","true");
                     else xml.printArg("break","true");
              }
              if (Solid && maybeTransparent() && isFilled()) 
                     xml.printArg("solid","true");
              if (!Unit.equals("")) xml.printArg("unit",Unit);
              if (Bold) xml.printArg("bold","true");
              if (Large) xml.printArg("large","true");
              if (haveConditionals())
              {      int i=0;
                     Enumeration e=Conditionals.elements();
                     while (e.hasMoreElements())
                     {      Conditional c=(Conditional)e.nextElement();
                            xml.printArg("ctag"+i,c.getTag());
                            xml.printArg("cexpr"+i,c.getExpression().toString());
                            i++;
                     }
              }
              printArgs(xml);
              xml.startTagEnd();
              xml.print(Text);
              xml.endTag(getTag());
              xml.println();
       }

Here is the call graph for this function:

Enumeration rene.zirkel.objects.ConstructionObject.secondaryParams ( ) [inline, inherited]

Return an enumeration of objects, which can be set as secondary parameters, whenever this object is selected as main parameter.

Reimplemented in rene.zirkel.objects.PrimitiveCircleObject, and rene.zirkel.objects.TwoPointLineObject.

Definition at line 892 of file ConstructionObject.java.

       {      DL.reset();
              return DL.elements();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 185 of file ConstructionObject.java.

{ return Selected || StrongSelected; }

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setAlias ( String  s) [inline, inherited]

Definition at line 1317 of file ConstructionObject.java.

       {      if (s==null) AliasES=null;
              else AliasES=new ExpressionString(s,this);
       }

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setBack ( boolean  flag) [inline, inherited]

Definition at line 1032 of file ConstructionObject.java.

       {      Back=flag;
       }

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setBold ( boolean  bold) [inline, inherited]

Definition at line 1198 of file ConstructionObject.java.

       {      Bold=bold;
       }

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setBreak ( boolean  flag) [inline, inherited]

Definition at line 1096 of file ConstructionObject.java.

       {      Break=flag;
              HideBreak=false;
       }

Here is the caller graph for this function:

Definition at line 1160 of file ConstructionObject.java.

       {      BreakHide=flag;
       }
void rene.zirkel.objects.ConstructionObject.setcOffset ( double  x,
double  y 
) [inline, inherited]

Definition at line 789 of file ConstructionObject.java.

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setColor ( int  index) [inline, inherited]

Set the object color by index.

Definition at line 302 of file ConstructionObject.java.

       {      if (index<0) C=Color.pink;
              else
              {      if (ColorType==THIN) C=ZirkelFrame.LightColors[index];
                     else C=ZirkelFrame.Colors[index];
                     ColorIndex=index;
              }
       }

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setColorType ( int  type) [inline, inherited]

Definition at line 832 of file ConstructionObject.java.

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 557 of file ConstructionObject.java.

       {      Cn=c; 
              inConstruction=true;
              setNameWithNumber(Name); // make sure the name is not double
       }

Here is the call graph for this function:

void rene.zirkel.objects.ConstructionObject.setFilled ( boolean  flag) [inline, inherited]
void rene.zirkel.objects.ConstructionObject.setFixed ( String  o) [inline, inherited]
void rene.zirkel.objects.ConstructionObject.setFlag ( boolean  flag) [inline, inherited]

Definition at line 921 of file ConstructionObject.java.

{ Flag=flag; }

Definition at line 440 of file ConstructionObject.java.

       {      g.setFont(Large,Bold);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setGotNCount ( boolean  gotNCount) [inline, inherited]

Definition at line 107 of file ConstructionObject.java.

                                                   {
              this.gotNCount = gotNCount;
       }
void rene.zirkel.objects.ConstructionObject.setHidden ( boolean  flag) [inline, inherited]

Definition at line 353 of file ConstructionObject.java.

       {      Hidden=flag; 
              if (!flag) SuperHidden=false;
       }

Here is the caller graph for this function:

Definition at line 1105 of file ConstructionObject.java.

       {      HideBreak=flag;
              Break=flag;
       }

Definition at line 1036 of file ConstructionObject.java.

       {      inConstruction=flag;
       }

Definition at line 202 of file ConstructionObject.java.

       {      Indicated=f; 
       }

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setIndicated ( boolean  f,
boolean  showname 
) [inline, inherited]

Definition at line 205 of file ConstructionObject.java.

       {      Indicated=f; ShowIndicatedName=showname;
       }

Definition at line 941 of file ConstructionObject.java.

       {      if (flag)
              {      OldColorIndex=ColorIndex;
                     setColor(-1);
              }
              else if (JobTarget) setColor(OldColorIndex);
              JobTarget=flag;
       }

Here is the call graph for this function:

void rene.zirkel.objects.ConstructionObject.setKeep ( boolean  flag) [inline, inherited]

Definition at line 930 of file ConstructionObject.java.

{ Keep=flag; }
void rene.zirkel.objects.PrimitiveLineObject.setKeepClose ( double  x,
double  y 
) [inline]

Definition at line 806 of file ConstructionObject.java.

       {      if (KeepClose && !flag) { XcOffset=0; YcOffset=0; }
              KeepClose=flag;
       }

Definition at line 186 of file ConstructionObject.java.

{ LabelSelected=flag; }

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setLarge ( boolean  large) [inline, inherited]

Definition at line 1205 of file ConstructionObject.java.

       {      Large=large;
       } 

Here is the caller graph for this function:

Reimplemented in rene.zirkel.objects.PlumbObject.

Definition at line 842 of file ConstructionObject.java.

       {      Enumeration e=secondaryParams();
              while (e.hasMoreElements())
              {      ConstructionObject o=(ConstructionObject)e.nextElement();
                     o.setParameter();
              }
              MainParameter=true;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setName ( ) [inline, inherited]

Sets a unique name for the object.

Should be overriden in all items.

Definition at line 126 of file ConstructionObject.java.

       {      if (Cn.LongNames)
                     Name=Zirkel.name("name."+getTag())+" "+getN();
              else
                     Name=Zirkel.name("name.short."+getTag())+getN();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setName ( String  n) [inline, inherited]

Definition at line 383 of file ConstructionObject.java.

       {      Name="";
              if (Cn!=null)
              {      ConstructionObject o=Cn.find(n);
                     while (o!=null && o!=this)
                     {      n=n+"*";
                            o=Cn.find(n);
                     }
              }
              Name=n; 
       }

Here is the call graph for this function:

void rene.zirkel.objects.ConstructionObject.setNameCheck ( String  n) throws ConstructionException [inline, inherited]

Definition at line 394 of file ConstructionObject.java.

       {      boolean extend=false;
              Name="";
              if (Cn!=null)
              {      ConstructionObject o=Cn.find(n);
                     if (o!=null && o!=this)
                     {      n=n+"*";
                            o=Cn.find(n);
                            extend=true;
                     }
              }
              Name=n; 
              if (extend)
                     throw new ConstructionException(Zirkel.name("exception.double"));
       }      

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setNameWithNumber ( String  n) [inline, inherited]

Definition at line 410 of file ConstructionObject.java.

       {      Name="";
              if (Cn!=null)
              {      ConstructionObject o=Cn.find(n);
                     if (o!=null)
                     {      while (o!=null && o!=this)
                            {      setName(); n=Name; Name="";
                                   o=Cn.find(n);
                            }
                            Name=n;
                     }
                     else Name=n;
              }
              else Name=n;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setNCount ( int  count) [inline, inherited]

Definition at line 1306 of file ConstructionObject.java.

                                        {
              NCount = count;
       }
void rene.zirkel.objects.ConstructionObject.setObtuse ( boolean  flag) [inline, inherited]

Definition at line 1076 of file ConstructionObject.java.

       {      Obtuse=flag;
       }

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setOffset ( int  x,
int  y 
) [inline, inherited]

Definition at line 795 of file ConstructionObject.java.

       {      XOffset=x; YOffset=y;
       }

Definition at line 850 of file ConstructionObject.java.

       {      Parameter=true;
       }

Here is the caller graph for this function:

Definition at line 312 of file PrimitiveLineObject.java.

       {      if (Partial==partial) return;
              Partial=partial; 
              if (partial)
              {      Dep=new PointObject[16];
                     NDep=0;
              }
              else Dep=null;
       }

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setRekFlag ( boolean  flag) [inline, inherited]

Definition at line 924 of file ConstructionObject.java.

{ RekFlag=flag; }

Definition at line 1139 of file ConstructionObject.java.

       {      Selectable=flag;
       }
void rene.zirkel.objects.ConstructionObject.setSelected ( boolean  flag) [inline, inherited]

Definition at line 182 of file ConstructionObject.java.

{ Selected=flag; StrongSelected=false; }

Here is the caller graph for this function:

Definition at line 570 of file ConstructionObject.java.

{ ShowName=f; }

Here is the caller graph for this function:

Definition at line 578 of file ConstructionObject.java.

{ ShowValue=f; }

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setSolid ( boolean  solid) [inline, inherited]

Definition at line 1118 of file ConstructionObject.java.

       {      Solid=solid;
       }

Here is the caller graph for this function:

Definition at line 1365 of file ConstructionObject.java.

{ SpecialParameter=flag; }

Here is the caller graph for this function:

Definition at line 183 of file ConstructionObject.java.

{ StrongSelected=flag; }

Definition at line 357 of file ConstructionObject.java.

       {      SuperHidden=flag;
       }

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setTarget ( boolean  flag) [inline, inherited]

Definition at line 927 of file ConstructionObject.java.

{ Target=flag; }

Here is the caller graph for this function:

Reimplemented in rene.zirkel.objects.PointObject.

Definition at line 1006 of file ConstructionObject.java.

Here is the call graph for this function:

void rene.zirkel.objects.ConstructionObject.setText ( String  s,
boolean  user 
) [inline, inherited]

Definition at line 284 of file ConstructionObject.java.

       {      if (!user && Text.endsWith(" ")) return;
              Text=s;
       }

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setText ( String  s) [inline, inherited]

Definition at line 288 of file ConstructionObject.java.

       {      setText(s,false);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 143 of file ConstructionObject.java.

       {      Translation=t;
       }

Here is the caller graph for this function:

void rene.zirkel.objects.ConstructionObject.setUnit ( String  s) [inline, inherited]

Definition at line 1150 of file ConstructionObject.java.

       {      Unit=s;
       }

Definition at line 563 of file ConstructionObject.java.

       {      if (!original && testConditional("showname")) return true;
              return ShowName || (Indicated && ShowIndicatedName); 
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 567 of file ConstructionObject.java.

       {      return showName(false);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 571 of file ConstructionObject.java.

       {      if (!original && testConditional("showvalue")) return true;
              return ShowValue; 
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 575 of file ConstructionObject.java.

       {      return showValue(false);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Test if the conditional "tag" evaluates to true.

Parameters:
tag

Definition at line 1237 of file ConstructionObject.java.

       {      Expression ex=getConditional(tag);
              if (ex==null) return false;
              try
              {      if (ex.getValue()!=0) return true;
              }
              catch (Exception e) {}
              return false;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

static String rene.zirkel.objects.ConstructionObject.text1 ( String  format,
String  s1 
) [inline, static, inherited]

Routines to parse descriptive text in various languages.

Definition at line 220 of file ConstructionObject.java.

       {      StringTokenizer t=tokenize(format);
              String s="Illegal Format";
              try
              {      s=t.nextToken()+s1;
                     s=s+t.nextToken();
              }
              catch (Exception e) {}
              return s.trim();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

static String rene.zirkel.objects.ConstructionObject.text2 ( String  format,
String  s1,
String  s2 
) [inline, static, inherited]

Definition at line 230 of file ConstructionObject.java.

       {      StringTokenizer t=tokenize(format);
              String s="Illegal Format";
              try
              {      s=t.nextToken()+s1+t.nextToken()+s2;
                     s=s+t.nextToken();
              }
              catch (Exception e) {}
              return s.trim();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

static String rene.zirkel.objects.ConstructionObject.text3 ( String  format,
String  s1,
String  s2,
String  s3 
) [inline, static, inherited]

Definition at line 240 of file ConstructionObject.java.

       {      StringTokenizer t=tokenize(format);
              String s="Illegal Format";
              try
              {      s=t.nextToken()+s1+t.nextToken()+s2+t.nextToken()+s3;
                     s=s+t.nextToken();
              }
              catch (Exception e) {}
              return s.trim();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

static String rene.zirkel.objects.ConstructionObject.text4 ( String  format,
String  s1,
String  s2,
String  s3,
String  s4 
) [inline, static, inherited]

Definition at line 250 of file ConstructionObject.java.

       {      StringTokenizer t=tokenize(format);
              String s="Illegal Format";
              try
              {      s=t.nextToken()+s1+t.nextToken()+s2+t.nextToken()+s3+t.nextToken()+s4;
                     s=s+t.nextToken();
              }
              catch (Exception e) {}
              return s;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

static String rene.zirkel.objects.ConstructionObject.textAny ( String  format,
String  ss[] 
) [inline, static, inherited]

Definition at line 260 of file ConstructionObject.java.

       {      StringTokenizer t=tokenize(format);
              String s="Illegal Format";
              try
              {      s=t.nextToken();
                     for (int i=0; i<ss.length; i++)
                     {      s=s+ss[i];
                            if (i<ss.length-1) s=s+", ";
                     }
                     s=s+t.nextToken();
              }
              catch (Exception e) {}
              return s;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

boolean rene.zirkel.objects.ConstructionObject.textcontains ( int  x,
int  y,
ZirkelCanvas  zc 
) [inline, inherited]

Definition at line 176 of file ConstructionObject.java.

       {      if (!DisplaysText || !Valid || 
                     (isHidden() && !zc.showHidden())) return false;
              return x>TX1 && x<TX2 && y>TY1 && y<TY2;
       }

Here is the call graph for this function:

Definition at line 1251 of file ConstructionObject.java.

       {      if (Conditionals!=null)
              {      Enumeration e=Conditionals.elements();
                     clearConditionals();
                     while (e.hasMoreElements())
                     {      Conditional c=(Conditional)e.nextElement();
                            String expr=c.getExpression().toString();
                            Expression enew=new Expression(expr,getConstruction(),this);
                            enew.translate();
                            addConditional(c.getTag(),enew);
                     }
              }
              if (AliasES!=null)
              {      setAlias(AliasES.toString());
                     AliasES.translate();
              }
       }

Here is the call graph for this function:

Here is the caller graph for this function:

String rene.zirkel.objects.ConstructionObject.translateExpressions ( String  s) [inline, inherited]

Replace the expression in %...% by their translated epressions.

Parameters:
s
zcmay be null (no direct search of object)
Returns:

Definition at line 708 of file ConstructionObject.java.

       {      //System.out.println(s);
              boolean latex=s.startsWith("$");
              int searchpos=0;
              while (s.indexOf("%",searchpos)>=0)
              {      //System.out.println(searchpos);
                     int h1=s.indexOf("%",searchpos);
                     String s1=s.substring(h1+1);
                     int h2=s1.indexOf("%");
                     if (h2==0)
                     {      s=s.substring(0,h1)+"%"+s1.substring(1);
                            searchpos+=1;
                     }
                     else if (h2>=0)
                     {      String var=s1.substring(0,h2);
                            boolean showeq=false,forceplus=false;
                            String repl="";
                            if (var.startsWith("~")) // show equation
                            {      var=var.substring(1); showeq=true;
                                   repl="+";
                            }
                            else if (var.startsWith("+")) // force +
                            {      var=var.substring(1); forceplus=true;
                                   repl="~";
                            }
                            ConstructionObject o=getConstruction().find(var);
                            if (o!=null) o=o.getTranslation();
                            // System.out.println(o+" "+var);
                            if (showeq) repl=repl+o.getName();
                            else
                            {      if (o!=null)
                                   {      repl=repl+o.getName();
                                   }
                                   else
                                   {      Expression ex=new Expression(var,getConstruction(),this);
                                          if (ex.isValid())
                                          {      ex.translate();
                                                 repl=repl+ex.toString();
                                          }
                                          else
                                          {      return s;
                                          }
                                   }
                            }
                            // System.out.println(repl);
                            s=s.substring(0,h1)+"%"+repl+"%"+s1.substring(h2+1);
                            searchpos=h1+repl.length()+2;
                            // System.out.println(s);
                     }
                     else break;
              }
              return s;
       }

Here is the call graph for this function:

Definition at line 814 of file ConstructionObject.java.

       {      if (XOffset!=0 || YOffset!=0)
              {      XcOffset=zc.dx(XOffset);
                     YcOffset=zc.dy(-YOffset);
                     XOffset=YOffset=0;
              }
       }

Here is the call graph for this function:

Definition at line 191 of file ConstructionObject.java.

       {      return Valid; 
       }

Definition at line 1190 of file ConstructionObject.java.

       {      return selected() || ColorType!=INVISIBLE
                     || zc.showHidden(); 
       }      

Here is the call graph for this function:

Here is the caller graph for this function:

double rene.zirkel.objects.ConstructionObject.xcOffset ( ) [inline, inherited]

Definition at line 792 of file ConstructionObject.java.

{ return XcOffset; }

Here is the caller graph for this function: