## WISH LIST

This is the list of desired features, pending discussion before being added to the format specification. A list of symbols can be found at http://i2geo.net/xwiki/bin/view/I2GFormat/FileFormatSymbols.

**CONSTRUCTIONS**

**Points**

- Point on arc: defines a point on a given arc
- Polar point: defines the polar point wrt a conic
- Polygon center: defines the center of a polygon

**Vectors**

- Vector: defines a (n-dimensional, n=2, 3) euclidean vector

**Segments**

- Bisector of a segment

**Lines**

- Polar line: defines the polar line wrt a conic

**Rays**

- Direction of ray: Given a ray r, gives the unique direction (point at infinity in the projective plane) of this ray. (This one is currently under discussion; the question is whether we want the result to be a "direction" or a vector)

**Angles**

- Besides being able to measure angles somehow, we might want also to be able to draw angles (the usual way is to draw a little arc joining two lines and write the angle measure next to it)

**Polygons**

- Polygon: defines a polygon given by n points.
- Regular n-gon defined by two points: defines a regular polygon with two vertices and the umber of sides

**Circles**

- Circle by center and free radius: defines a circle with given center and a free radius.
- Arc of circle by three points: defines the arc of a circle by three points
- Arc of circle given the center of the circumference and the two endpoints (counterclockwisely)
- Compass: circle defined by distance of two points and a center point

**Conics**

- Conic one point four lines: conic defined by 1 point and 4 tangent lines
- Conic four points one line: conic defined by 4 points and one tangent line
- Conic five lines: conic defined by 5 tangents
- Conic five points: conic defined by 5 points
- Parabola point line: parabola defined by a point and a line
- Conic by principal directions: ellipse or hyperbola defined by principle directions

**Locus**

- Evolute: defines the evolute of a locus
- point_on_locus: I think at some point we discused it and were a little bit scared of solving the equations to find the closest point in a locus to a given point, but actually this might not be necessary, a close enough point could do.

**FUNCTIONS**

- Angle: returns the angle between two lines.
- Area: returns the area of a construction (as a triangle, a circle, poligone…)
- Length: returns the length of a segment.
- Distance: returns the distance between two objects (two points, two lines, ...)
- Ratio: ratio between the lengths of two line segments, for instance.
- Reflection wrt a point: constructs the reflection of an object with respect to a point.
- Reflection wrt a line: constructs the reflection of an object with respect to a line.
- Reflection wrt a circle: constructs the reflection of an object with respect to a circle.
- Rotation defined by two lines: constructs the rotation of an object as defined by two given lines
- Rotation defined by a point and an angle: constructs the rotation of an object as defined by a point and an angle
- Traslation defined by two points: constructs the translation of an object as defined by two points
- Functions to plot the graph of a function, an implicit function, and a parametrized curve. Be able to make a point run over them so that they can be used as "movers" to define a locus.

**OTHER**

- slider. We can simulate this by letting a point move on a segment, but we have no way of letting it have only dicrete values.
- checkbox. As in "click here to show the medians".
- Picture. Have a picture included at some point. Probably we will have to indicate the size.
- Text. Write something somewhere.
- Name of a construction. Be able to give names to constructions. It was suggested to make this an optional attribute of the construction symbol. This might be important if some day we implement synchronized displays, and two or more constructions are running simultaneously and communicating between themselves. Actually, this might involve also giving names to each display part, or maybe no name would be needed if we agred communication to be done through element values (we could specify that one element can be changed in onw display part and not in the others). So this needs further discussion.
- Version number. Be able to specify version number of the i2g format used. It was suggested to make this an optional attribute of the construction symbol.
- Description of a construction. Three somewhat incompatible suggestions where made as to where to place this: 1. It should go in the display part. 2. It would be nice to have it at the beginning of the file. 3. Each view might need its own description. Other similar metadata are instructions of use and copyright notices. These are texts intended for human reading, and so will have the problem of language.