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 Functions | Package Attributes | Static Package Attributes
rene.zirkel.objects.AngleObject Class Reference
Inheritance diagram for rene.zirkel.objects.AngleObject:
Inheritance graph
[legend]
Collaboration diagram for rene.zirkel.objects.AngleObject:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 AngleObject (Construction c, PointObject p1, PointObject p2, PointObject p3)
 AngleObject (Construction c)
String getTag ()
int getN ()
void updateText ()
String getDisplayValue ()
 To be overridden by the objects.
boolean nearto (int x, int y, ZirkelCanvas zc)
 Test, if this object is chosen with coordinates x,y.
void validate ()
void paint (MyGraphics g, ZirkelCanvas zc)
boolean canKeepClose ()
void setKeepClose (double x, double y)
double getLength ()
boolean fixed ()
void setFixed (boolean flag)
void setFixed (String s)
boolean canFix ()
void printArgs (XmlWriter xml)
void edit (ZirkelCanvas zc)
void setDisplaySize (int i)
int getDisplaySize ()
Enumeration depending ()
 Return an enumeration of objects, that this object depends on.
boolean equals (ConstructionObject o)
void translate ()
 Override in children! This translates the mother items.
String getE ()
double getValue () throws ConstructionException
 Get the value of an object or throw an exception (e.g.
void setFilled (boolean flag)
boolean isFilled ()
boolean maybeTransparent ()
boolean isFilledForSelect ()
double containsInside (PointObject P)
 Returns 0.5, if the point is on the boundary, and 1, if it is inside.
boolean keepInside (PointObject P)
boolean isGotNCount ()
void setGotNCount (boolean gotNCount)
void setName ()
 Sets a unique name for the object.
void setName (String n)
ConstructionObject getTranslation ()
 This is used to define macros and run them.
void setTranslation (ConstructionObject t)
boolean nearto (int x, int y, boolean ignorefill, ZirkelCanvas zc)
 Test, if this object is chosen with coordinates x,y.
boolean onlynearto (int x, int y, ZirkelCanvas zc)
 Test, if this object must be chosen with coordinates x,y, assuming it is near to these coordinates.
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 ()
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 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 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 ()
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 ()
void clearCircleDep ()
ConstructionObject copy ()
 This clones the object for macro construction.
Construction getConstruction ()
void setDefaults ()
void setTargetDefaults ()
boolean contains (PointObject p)
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.
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 locallyLike (ConstructionObject o)
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 getEquation ()
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 String translateToUnicode (String s)
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 NORMALSIZE = 1
static char Translation []
static final int NORMAL = 0
static DepList DL = new DepList()
static final int DescriptionState = 0

Protected Attributes

PointObject P1
int DisplaySize = NORMALSIZE
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
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 Functions

double getDisplaySize (ZirkelCanvas zc)

Package Attributes

PointObject P2
PointObject P3
double A
double A1
double A2
double X
double Y
boolean Fixed
Expression E
boolean Filled = false
double x [] = new double[4]
double y [] = new double[4]
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 Count N = new Count()
static final double LabelScale = 0.66
static final int SMALL = 0
static final int LARGER = 2
static final int LARGE = 3
static final int RECT = 4
static final int THICK = 1
static final int THIN = 2
static final int INVISIBLE = 3
static final int FormulaState = 1
static final int SizeState = 2

Detailed Description

Definition at line 95 of file AngleObject.java.


Constructor & Destructor Documentation

Definition at line 109 of file AngleObject.java.

       {      super(c);
              P1=p1; P2=p2; P3=p3;
              validate();
              setColor(ColorIndex);
              updateText();
              Unit=Global.getParameter("unit.angle","");
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 119 of file AngleObject.java.

              {      super(c);
              }

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:

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:

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 333 of file AngleObject.java.

       {      return P3.moveableBy(this);
       }

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 300 of file AngleObject.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:

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:

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:

Returns 0.5, if the point is on the boundary, and 1, if it is inside.

Implements rene.zirkel.objects.InsideObject.

Definition at line 506 of file AngleObject.java.

       {      double dx=P.getX()-X,dy=P.getY()-Y;
              double a=Math.atan2(dy,dx);
              if (a<0) a+=2*Math.PI;
              if (a<A1) a+=2*Math.PI;
              double c=1e-5;
              if (a>A1 && a<A1+A) return 1;
              else if (a>A1-c && a<A1+A+c) return 0.5;
              return 0;
       }

Here is the call graph for this function:

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:

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

This should usually called from children via super.

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 373 of file AngleObject.java.

       {      super.depending();
              if (P1==null) return DL.elements();
              if (!Fixed) return depset(P1,P2,P3);
              else
              {      depset(P1,P2,P3);
                     Enumeration e=E.getDepList().elements();
                     while (e.hasMoreElements())
                     {      DL.add((ConstructionObject)e.nextElement());
                     }
                     return DL.elements();
              }
       }

Here is the call 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.

Definition at line 353 of file AngleObject.java.

       {      ObjectEditDialog d=new AngleEditDialog(zc.getFrame(),this);
              d.setVisible(true);
              zc.repaint();
              if ((E!=null && !E.isValid()))
              {      Frame F=zc.getFrame();
                     Warning w=new Warning(F,E.getErrorText(),
                            Zirkel.name("warning"),true);
                     w.center(F);
                     w.setVisible(true);
              }
              if (d.wantsMore())
              {      new EditConditionals(zc.getFrame(),this);
                     validate();
              }
       }

Here is the call graph for this function:

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 387 of file AngleObject.java.

       {      if (!(o instanceof AngleObject) || !o.valid()) return false;
              AngleObject l=(AngleObject)o;
              return equals(X,l.X) && equals(Y,l.Y) &&
                     equals(A1,l.A1) && equals(A2,l.A2);
       }

Here is the call 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;
       }

Definition at line 322 of file AngleObject.java.

{ return Fixed; }

Here is the caller graph for this function:

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 "";
       }

Definition at line 310 of file AngleObject.java.

       {      double R=zc.dx((int)(12*zc.pointSize()));
              if (DisplaySize==SMALL || DisplaySize==RECT) R/=2;
              else if (DisplaySize==LARGER) R*=2;
              else if (DisplaySize==LARGE)
              {      double dx=P1.getX()-X,dy=P1.getY()-Y;
                     R=Math.sqrt(dx*dx+dy*dy);
              }
              return R;
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 371 of file AngleObject.java.

{ return DisplaySize; }

Here is the caller graph for this function:

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:

To be overridden by the objects.

Returns:
The string to display the value (length, coordinates) of the object.

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 135 of file AngleObject.java.

       {      if (ZirkelCanvas.AnglesFactor<=2) return ""+(int)(A/Math.PI*180+0.5);
              else return ""+round(A/Math.PI*180,ZirkelCanvas.AnglesFactor);
       }

Here is the call graph for this function:

Definition at line 480 of file AngleObject.java.

       {      if (Fixed && E!=null) return E.toString();
              else return ""+round(A/Math.PI*180);
       }

Here is the call graph for this function:

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 in rene.zirkel.objects.ExpressionObject, rene.zirkel.objects.PrimitiveLineObject, rene.zirkel.objects.QuadricObject, and rene.zirkel.objects.PrimitiveCircleObject.

Definition at line 1164 of file ConstructionObject.java.

       {      return getDisplayValue();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 321 of file AngleObject.java.

{ return A; }

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 124 of file AngleObject.java.

{ return N.next(); }

Here is the call graph for this function:

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:

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:

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 123 of file AngleObject.java.

{ return "Angle"; }
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 from rene.zirkel.objects.ConstructionObject.

Definition at line 485 of file AngleObject.java.

       {      if (!Valid) throw new InvalidException("exception.invalid");
              else return A/Math.PI*180;
       }

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;
       }

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:

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 from rene.zirkel.objects.ConstructionObject.

Definition at line 494 of file AngleObject.java.

       {      return Filled;
       }

Here is the caller graph for this function:

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 502 of file AngleObject.java.

       {      return false;
       }

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 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:

Implements rene.zirkel.objects.InsideObject.

Definition at line 517 of file AngleObject.java.

       {      if (containsInside(P)>0) return true;
              double x=P.getX(),y=P.getY();
              double x1=P2.getX(),y1=P2.getY();
              double xmin=x1,ymin=y1,dmin=1e20;
              double x2=P1.getX(),y2=P1.getY();
              double dx=x2-x1,dy=y2-y1;
              double r=dx*dx+dy*dy;
              double h=dx*(x-x1)/r+dy*(y-y1)/r;
              if (h<0) h=0;
              double xh=x1+h*dx,yh=y1+h*dy;
              double dist=Math.sqrt((x-xh)*(x-xh)+(y-yh)*(y-yh));
              if (dist<dmin)
              {      dmin=dist;
                     xmin=xh; ymin=yh;
              }
              x2=P3.getX(); y2=P3.getY();
              dx=x2-x1; dy=y2-y1;
              r=dx*dx+dy*dy;
              h=dx*(x-x1)/r+dy*(y-y1)/r;
              if (h<0) h=0;
              xh=x1+h*dx; yh=y1+h*dy;
              dist=Math.sqrt((x-xh)*(x-xh)+(y-yh)*(y-yh));
              if (dist<dmin)
              {      dmin=dist;
                     xmin=xh; ymin=yh;
              }
              P.move(xmin,ymin);
              return false;
       }      

Here is the call 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 in rene.zirkel.objects.PrimitiveCircleObject, and rene.zirkel.objects.PrimitiveLineObject.

Definition at line 1126 of file ConstructionObject.java.

       {      return false;
       }

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 498 of file AngleObject.java.

       {      return true;
       }      

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.AngleObject.nearto ( int  x,
int  y,
ZirkelCanvas  zc 
) [inline]

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

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 140 of file AngleObject.java.

       {      if (!displays(zc)) return false;
              double dx=zc.x(x)-X,dy=zc.y(y)-Y;
              double size=zc.dx((int)zc.selectionSize());
              double rd=getDisplaySize(zc),r=Math.sqrt(dx*dx+dy*dy);
              boolean near;
              Value=Math.abs(r-rd);
              if (Filled || DisplaySize==RECT)
              {      near=(r<rd+size);
                     if (near) Value=0;
              }
              else near=(Math.abs(r-rd)<size);
              if (!near) return false;
              if (rd<size) return near;
              double a=Math.atan2(dy,dx);
              if (a<0) a+=2*Math.PI;
              double c=0.05;
              if (a<A1) a+=2*Math.PI;
              return a>A1-c && a<A1+A+c;
       }

Here is the call 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:

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

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 214 of file AngleObject.java.

       {      if (!Valid  || mustHide(zc)) return;
              double R=zc.col(getDisplaySize(zc))-zc.col(0);
              double c1=zc.col(X)-R,r1=zc.row(Y)-R;
              // paint:
              double DA=(A2-A1)/Math.PI*180;
              if (DA<0) DA+=360;
              else if (DA>=360) DA-=360;
              if (visible(zc))
              {      if (isStrongSelected() && g instanceof MyGraphics13)
                     {      ((MyGraphics13)g).drawMarkerArc(c1+R,r1+R,R,A1/Math.PI*180,DA);
                     }
                     if (Filled)
                     {      if (DisplaySize==RECT)
                            {      double dx1=Math.cos(A1),dy1=Math.sin(A1),
                                   dx2=Math.cos(A1+DA/180*Math.PI),dy2=Math.sin(A1+DA/180*Math.PI);
                                   double dx3=dx1+dx2,dy3=dy1+dy2;
                                   if (DA>180)
                                   {      dx3=-dx3; dy3=-dy3;
                                   }
                                   if (Selected||getColorType()!=THIN)
                                   {      g.setColor(this);
                                          g.drawLine(c1+R+R*dx1,r1+R-R*dy1,c1+R+R*dx3,r1+R-R*dy3);
                                          g.drawLine(c1+R+R*dx3,r1+R-R*dy3,c1+R+R*dx2,r1+R-R*dy2);
                                   }
                                   x[0]=c1+R; y[0]=r1+R;
                                   x[1]=c1+R+R*dx1; y[1]=r1+R-R*dy1;
                                   x[2]=c1+R+R*dx3; y[2]=r1+R-R*dy3;
                                   x[3]=c1+R+R*dx2; y[3]=r1+R-R*dy2;
                                   g.fillPolygon(x,y,4,false,getColorType()!=THICK,this);
                            }
                            else 
                                   g.fillArc(c1,r1,2*R,2*R,A1/Math.PI*180,DA,
                                                 Selected||getColorType()!=THIN,getColorType()!=THICK,true,this);
                     }
                     else
                     {      g.setColor(this);
                            if (DisplaySize==RECT)
                            {      double dx1=Math.cos(A1),dy1=Math.sin(A1),
                                          dx2=Math.cos(A1+DA/180*Math.PI),dy2=Math.sin(A1+DA/180*Math.PI);
                                   g.drawLine(c1+R+R*dx1,r1+R-R*dy1,c1+R+R*(dx1+dx2),r1+R-R*(dy1+dy2));
                                   g.drawLine(c1+R+R*(dx1+dx2),r1+R-R*(dy1+dy2),c1+R+R*dx2,r1+R-R*dy2);
                            }
                            else 
                                   g.drawCircleArc(c1+R,r1+R,R,A1/Math.PI*180,DA,this);
                     }
              }
              String s=translateToUnicode(getDisplayText());
              if (!s.equals(""))
              {      g.setLabelColor(this);
                     setFont(g);
                     DisplaysText=true;
                     double dx=Math.cos(A1+A/2),dy=Math.sin(A1+A/2);
                     if (s.equals("90"+getUnit()) || Name.startsWith("."))
                     {      if (KeepClose)
                            {      double d=Math.sqrt(XcOffset*XcOffset+YcOffset*YcOffset);
                                   TX1=zc.col(X+d*dx)-3; 
                                   TY1=zc.row(Y+d*dy)-3;
                                   TX2=TX1+9;
                                   TY2=TY1+9;
                                   g.drawRect(zc.col(X+d*dx)-1,
                                          zc.row(Y+d*dy)-1,3,3);
                            }
                            else
                            {      TX1=zc.col(X+zc.dx(R*LabelScale)*dx+XcOffset)-3; 
                                   TY1=zc.row(Y+zc.dy(R*LabelScale)*dy+YcOffset)-3;
                                   TX2=TX1+9;
                                   TY2=TY1+9;
                                   g.drawRect(zc.col(X+zc.dx(R*LabelScale)*dx+XcOffset)-1,
                                          zc.row(Y+zc.dy(R*LabelScale)*dy+YcOffset)-1,3,3);
                            }
                     }
                     else
                     {      if (KeepClose)
                            {      double d=Math.sqrt(XcOffset*XcOffset+YcOffset*YcOffset);
                                   drawCenteredLabel(g,s,zc,
                                          X+d*dx,Y+d*dy,0,0);
                            }
                            else
                                   drawCenteredLabel(g,s,zc,
                                          X+zc.dx(R*LabelScale)*dx,Y+zc.dy(R*LabelScale)*dy,
                                          XcOffset,YcOffset);
                     }
              }
       }

Here is the call graph for this function:

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 337 of file AngleObject.java.

       {      if (P1!=null)
              {      xml.printArg("first",P1.getName());
                     xml.printArg("root",P2.getName());
                     xml.printArg("second",P3.getName());
              }
              if (DisplaySize==SMALL) xml.printArg("display","small");
              if (DisplaySize==LARGE) xml.printArg("display","large");
              if (DisplaySize==LARGER) xml.printArg("display","larger");
              if (DisplaySize==RECT) xml.printArg("display","rectangle");
              if (Filled) xml.printArg("filled","true");
              if (Fixed && E!=null) xml.printArg("fixed",E.toString());
              if (!Obtuse) xml.printArg("acute","true");
              super.printArgs(xml);
       }      

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:

Definition at line 370 of file AngleObject.java.

Here is the caller graph for this function:

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 491 of file AngleObject.java.

       {      Filled=flag;
       }

Here is the caller graph for this function:

Definition at line 323 of file AngleObject.java.

       {      Fixed=flag;
              updateText();
       }

Here is the call graph for this function:

Here is the caller graph for this function:

void rene.zirkel.objects.AngleObject.setFixed ( String  s) [inline]

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 327 of file AngleObject.java.

       {      Fixed=true;
              E=new Expression(s,getConstruction(),this);
              updateText();
       }

Here is the call graph for this function:

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.AngleObject.setKeepClose ( double  x,
double  y 
) [inline]

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 304 of file AngleObject.java.

       {      KeepClose=true;
              XcOffset=x-X;
              YcOffset=y-Y;
       }

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:

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:

Override in children! This translates the mother items.

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 467 of file AngleObject.java.

       {      P1=(PointObject)P1.getTranslation();
              P2=(PointObject)P2.getTranslation();
              P3=(PointObject)P3.getTranslation();
              if (Fixed)
              {      try
                     {      setFixed(E.toString());
                            E.translate();
                     }
                     catch (Exception e) { Fixed=false; }
              }
       }

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:

static String rene.zirkel.objects.AngleObject.translateToUnicode ( String  s) [inline, static]

Definition at line 422 of file AngleObject.java.

       {      if (s.startsWith("$")) return s;
              if (s.indexOf('\\')<0) return s;
              StringBuffer b=new StringBuffer();
              for (int i=0; i<s.length(); i++)
              {      char c=s.charAt(i);
                     if (c!='\\') b.append(c);
                     else
                     {      i++;
                            if (i<s.length())
                            {      c=s.charAt(i);
                                   if (c=='0')
                                   {      int n=0;
                                          i++;
                                          while (i<s.length())
                                          {      char ch=s.charAt(i);
                                                 if (ch>='0' && ch<='9')
                                                 {      n=n*16+(int)(ch-'0');
                                                 }
                                                 else if (ch>='A' && ch<='F')
                                                 {      n=n*16+(int)(ch-'A'+10);
                                                 }
                                                 else break;
                                                 i++;
                                          }
                                          if (n>0)
                                          {      c=(char)n;
                                                 b.append(c);
                                          }
                                          i--; continue;
                                   }
                                   int j=0;
                                   for (j=0; j<Translation.length; j+=2)
                                   {      if (Translation[j]==c)
                                          {      b.append(Translation[j+1]);
                                                 break;
                                          }      
                                   }
                                   if (j>=Translation.length) b.append(c);
                            }
                     }
              }
              return b.toString();
       }

Here is the caller graph for this function:

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 126 of file AngleObject.java.

       {      if (!Fixed || E==null)
                     setText(text3(Zirkel.name("text.angle"),
                            P1.getName(),P2.getName(),P3.getName()));
              else
                     setText(text4(Zirkel.name("text.angle.fixed"),
                                   P1.getName(),P2.getName(),P3.getName(),"\""+E.toString()+"\""));
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 191 of file ConstructionObject.java.

       {      return Valid; 
       }

Reimplemented from rene.zirkel.objects.ConstructionObject.

Definition at line 161 of file AngleObject.java.

       {      if (P1==null) return;
              if (!P1.valid() || !P2.valid() || !P3.valid()) { Valid=false; return; }
              else
              {      X=P2.getX(); Y=P2.getY();
                     double dx=P1.getX()-X,dy=P1.getY()-Y;
                     if (Math.sqrt(dx*dx+dy*dy)<1e-9)
                     {      Valid=false; return;
                     }
                     A1=Math.atan2(dy,dx);
                     if (A1<0) A1+=2*Math.PI;
                     dx=P3.getX()-X; dy=P3.getY()-Y;
                     if (Math.sqrt(dx*dx+dy*dy)<1e-9)
                     {      Valid=false; return;
                     }
                     A2=Math.atan2(dy,dx);
                     if (A2<0) A2+=2*Math.PI;
                     A=A2-A1;
                     if (A<0) A=A+2*Math.PI;
                     Valid=true;
                     if (Fixed)
                     {      double FixedAlpha=0;
                            try
                            {      FixedAlpha=E.getValue()/180*Math.PI;
                            }
                            catch (Exception e)
                            {      return;
                            }
                            if (P3.moveableBy(this))
                            {      dx=P3.getX()-X; dy=P3.getY()-Y;
                                   double r=Math.sqrt(dx*dx+dy*dy);
                                   if (r<1e-9) r=1e-9;
                                   P3.move(X+Math.cos(A1+FixedAlpha)*r,
                                          Y+Math.sin(A1+FixedAlpha)*r);
                                   A2=A1+FixedAlpha;
                            }
                            else Fixed=false;
                            if (Fixed)
                            {      A=FixedAlpha;
                                   P3.movedBy(this);
                                   P1.movedBy(this);
                            }
                     }
                     else if (!Obtuse && A>Math.PI)
                     {      A1=A2;
                            A=2*Math.PI-A;
                            A2=A1+A;
                     }
              }
       }

Here is the call graph for this function:

Here is the caller graph for this function:

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:

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

Definition at line 793 of file ConstructionObject.java.

{ return YcOffset; }

Here is the caller graph for this function:


Member Data Documentation

Definition at line 99 of file AngleObject.java.

Definition at line 99 of file AngleObject.java.

Definition at line 99 of file AngleObject.java.

Definition at line 1310 of file ConstructionObject.java.

Definition at line 81 of file