Duality Demo

User Interface

The user interface requires the user to select two options. The MODE option should always be selected first, and then the type of OBJECT to be inserted. The applet runs in three modes: Insert, Query, and Edit. The following sections outline what the user can do for each mode of operation. Please not that the applet accepts input from the left mouse button only.

Insert Mode

The user can insert POINT or SEGMENTs. The duals of these types of objects will be inserted into the BSP data structure in the dual plane.

Query Mode

Objects inserted in Query Mode are NOT inserted into the BSP data structure. The Query Mode allows the user to insert ONE SEGMENT query and a MULTIPLE-SEGMENT QUERY; the applet does not handle primal POINT queries (I ran out of time). Triangles and Circles can also be entered for visualization purposes in the Query Mode but their dual lines are not entered into the BSP data structure nor is there any BSP query operations performed with them.structure.

Edit Mode

No objects may be entered in this mode; only translation, rotation and scaling operations are permitted. The following outlines what editing operation is supported for each object.

Remarks

Sources

(tar gzipped bundle)

BSPCell.java
Controls.java
CustomFrame.java
DrawingArea.java
dualapplet.java
DualityCircle.java
DualityObject.java
DualityObjectSet.java
DualitySegment.java
DualitySegmentSet.java
DualityTriangle.java
DualityTriangleDual.java
DualityVertex.java
DualityWedge.java
DualityWedgeSet.java
Face.java
HalfSpace.java
main.java
Node.java
Segment.java
SegmentList.java
Util.java
Vertex.java