public HTAction(HTDraw model) { this.model = model; startPoint = new HTCoordE(); endPoint = new HTCoordE(); clickPoint = new HTCoordS(); }
public HTModelNode(HTNode node, HTModelNodeComposite parent, HTModel model) { this.node = node; this.parent = parent; this.model = model; model.IncrementNumberOfNodes(); z = new HTCoordE(); }
internal void Translate(HTCoordE t) { double denX = (x * t.x) + (y * t.y) + 1; double denY = (y * t.x) - (x * t.y); double dd = (denX * denX) + (denY * denY); double numX = x + t.x; double numY = y + t.y; x = ((numX * denX) + (numY * denY)) / dd; y = ((numY * denX) - (numX * denY)) / dd; }
internal HTGeodesic(HTCoordE za, HTCoordE zb) { this.za = za; this.zb = zb; zc = new HTCoordE(); zo = new HTCoordE(); a = new HTCoordS(); b = new HTCoordS(); c = new HTCoordS(); Rebuild(); }
public HTDrawNode(HTDrawNodeComposite father, HTModelNode node, HTDraw model) { this.father = father; this.node = node; this.model = model; label = new HTNodeLabel(this); ze = new HTCoordE(node.GetCoordinates()); oldZe = new HTCoordE(ze); zs = new HTCoordS(); model.MapNode(node.GetNode(), this); return; }
override internal void Translate(HTCoordE t) { base.Translate(t); HTDrawNode child = null; for (IEnumerator i = Children(); i.MoveNext();) { child = (HTDrawNode)i.Current; child.Translate(t); HTGeodesic geod = (HTGeodesic)geodesics[child]; if (geod != null) { geod.Rebuild(); } } }
public virtual void Layout(double angle, double width, double length) { if (parent == null) { return; } HTCoordE zp = parent.GetCoordinates(); z.X = length * Math.Cos(angle); z.Y = length * Math.Sin(angle); z.Translate(zp); //Debug.WriteLine("modelnodel.z:" + z); //Debug.WriteLine("modelnodel.zparent:" + parent); }
internal void Transform(HTTransformation t) { HTCoordE z = new HTCoordE(this); Multiply(t.O); x += t.P.x; y += t.P.y; HTCoordE d = new HTCoordE(t.P); d.y = -d.y; d.Multiply(z); d.Multiply(t.O); d.x += 1; Divide(d); }
internal void Composition(HTCoordE first, HTCoordE second) { P.X = first.X + second.X; P.Y = first.Y + second.Y; HTCoordE d = new HTCoordE(second); d.Y = -d.Y; d.Multiply(first); d.X += 1; P.Divide(d); O.X = first.X; O.Y = -first.Y; O.Multiply(second); O.X += 1; O.Divide(d); }
override public void Layout(double angle, double width, double length) { base.Layout(angle, width, length); if (parent != null) { HTCoordE a = new HTCoordE(Math.Cos(angle), Math.Sin(angle)); HTCoordE nz = new HTCoordE(-z.X, -z.Y); a.Translate(parent.GetCoordinates()); a.Translate(nz); angle = a.Arg(); double c = Math.Cos(width); double A = 1 + length * length; double B = 2 * length; width = Math.Acos((A * c - B) / (A - B * c)); } HTModelNode child = null; HTCoordE dump = new HTCoordE(); int nbrChild = children.Count; double l1 = (0.95 - model.GetLength()); double l2 = Math.Cos((20.0 * Math.PI) / (2.0 * nbrChild + 38.0)); length = model.GetLength() + (l1 * l2); double startAngle = angle - width; for (IEnumerator i = Children(); i.MoveNext();) { child = (HTModelNode)i.Current; double percent = child.GetWeight() / globalWeight; double childWidth = width * percent; double childAngle = startAngle + childWidth; child.Layout(childAngle, childWidth, length); startAngle += 2.0 * childWidth; } }
public override void Layout(double angle, double width, double length) { base.Layout(angle, width, length); if (parent != null) { HTCoordE a = new HTCoordE(Math.Cos(angle), Math.Sin(angle)); HTCoordE nz = new HTCoordE(-z.X, -z.Y); a.Translate(parent.GetCoordinates()); a.Translate(nz); angle = a.Arg(); double c = Math.Cos(width); double A = 1 + length * length; double B = 2 * length; width = Math.Acos((A * c - B) / (A - B * c)); } HTModelNode child = null; HTCoordE dump = new HTCoordE(); int nbrChild = children.Count; double l1 = (0.95 - model.GetLength()); double l2 = Math.Cos((20.0 * Math.PI) / (2.0 * nbrChild + 38.0)); length = model.GetLength() + (l1 * l2); double startAngle = angle - width; for (IEnumerator i = Children(); i.MoveNext(); ) { child = (HTModelNode)i.Current; double percent = child.GetWeight() / globalWeight; double childWidth = width * percent; double childAngle = startAngle + childWidth; child.Layout(childAngle, childWidth, length); startAngle += 2.0 * childWidth; } }
internal void Divide(HTCoordE z) { double d = z.D2(); double tx = x; double ty = y; x = ((tx * z.X) + (ty * z.Y)) / d; y = ((ty * z.X) - (tx * z.Y)) / d; }
internal void Copy(HTCoordE z) { this.X = z.X; this.Y = z.Y; }
void Sub(HTCoordE a, HTCoordE b) { x = a.X - b.X; y = a.Y - b.Y; }
public HTCoordE(HTCoordE z) { this.Copy(z); }
internal void Translate(HTCoordE s, HTCoordE t) { this.Copy(s); this.Translate(t); }
internal void ProjectionEtoS(HTCoordE ze, HTCoordS sOrigin, HTCoordS sMax) { x = (int)Math.Round(ze.X * sMax.X) + sOrigin.X; y = -(int)Math.Round(ze.Y * sMax.Y) + sOrigin.Y; }
internal HTTransformation() { P = new HTCoordE(); O = new HTCoordE(); }
internal virtual void Translate(HTCoordE t) { ze.Translate(oldZe, t); }
internal double D(HTCoordE p) { return Math.Sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y)); }
internal void Translate(HTCoordE zs, HTCoordE ze) { HTCoordE zo = new HTCoordE(drawRoot.GetOldCoordinates()); zo.X = -zo.X; zo.Y = -zo.Y; HTCoordE zs2 = new HTCoordE(zs); zs2.Translate(zo); HTCoordE t = new HTCoordE(); double de = ze.D2(); double ds = zs2.D2(); double dd = 1.0 - de * ds; t.X = (ze.X * (1.0 - ds) - zs2.X * (1.0 - de)) / dd; t.Y = (ze.Y * (1.0 - ds) - zs2.Y * (1.0 - de)) / dd; if (t.IsValid()) { HTTransformation to = new HTTransformation(); to.Composition(zo, t); drawRoot.Transform(to); view.Repaint(); } }
internal override void Translate(HTCoordE t) { base.Translate(t); HTDrawNode child = null; for (IEnumerator i = Children(); i.MoveNext(); ) { child = (HTDrawNode)i.Current; child.Translate(t); HTGeodesic geod = (HTGeodesic)geodesics[child]; if (geod != null) { geod.Rebuild(); } } }
internal void Multiply(HTCoordE z) { double tx = x; double ty = y; x = (tx * z.X) - (ty * z.Y); y = (tx * z.Y) + (ty * z.X); }
internal double D(HTCoordE p) { return(Math.Sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y))); }