* -- put smallest coordinate in position 0
* =============================================================================
*/
- static void minimizeCoordinates (element elementPtr) {
- coordinate[] coordinates = elementPtr.coordinates;
- int numCoordinate = elementPtr.numCoordinate;
+ void minimizeCoordinates() {
int minPosition = 0;
for (int i = 1; i < numCoordinate; i++) {
double denominator = 2 * ((bxDelta * cyDelta) - (cxDelta * byDelta));
double rx = ax - (xNumerator / denominator);
double ry = ay + (yNumerator / denominator);
- yada.Assert(fabs(denominator) > DBL_MIN); /* make sure not colinear */
+ yada.Assert(Math.fabs(denominator) > 2.2250738585072014e-308); /* make sure not colinear */
circumCenterPtr.x = rx;
circumCenterPtr.y = ry;
}
- elementPtr.circumRadius = coordinate.coordinate_distance(circumCenterPtr,
+ circumRadius = coordinate.coordinate_distance(circumCenterPtr,
coordinates[0]);
}
edgePtr.secondPtr = firstPtr;
}
- coordinate midpointPtr = elementPtr.midpoints[i];
+ coordinate midpointPtr = midpoints[i];
midpointPtr.x = (firstPtr.x + secondPtr.x) / 2.0;
midpointPtr.y = (firstPtr.y + secondPtr.y) / 2.0;
- elementPtr.radii[i] = coordinate.coordinate_distance(firstPtr, midpointPtr);
+ radii[i] = coordinate.coordinate_distance(firstPtr, midpointPtr);
}
* initEdges
* =============================================================================
*/
- void initEdges(coordinate coordinates, int numCoordinate) {
+ void initEdges(coordinate[] coordinates, int numCoordinate) {
numEdge = ((numCoordinate * (numCoordinate - 1)) / 2);
for (int e = 0; e < numEdge; e++) {
* Contains a copy of input arg 'coordinates'
* =============================================================================
*/
- public element(coordinate[] coordinates, int numCoordinate) {
+
+ double angleConstraint;
+ public element(coordinate[] coordinates, int numCoordinate, double angle) {
this.coordinates=new coordinate[3];
this.midpoints=new coordinate[3]; /* midpoint of each edge */
this.radii=new double[3]; /* half of edge length */
}
this.numCoordinate = numCoordinate;
minimizeCoordinates();
+ this.angleConstraint=angle;
checkAngles();
calculateCircumCircle();
initEdges(coordinates, numCoordinate);
* For use in MAP_T
* =============================================================================
*/
- int element_mapCompareEdge (Object aPtr, Object bPtr) {
+ int element_mapCompareEdge (edge aPtr, edge bPtr) {
edge aEdgePtr = (edge)(aPtr.firstPtr);
edge bEdgePtr = (edge)(bPtr.firstPtr);
* -- Can we deallocate?
* =============================================================================
*/
- boolean element_isGarbage() {
+ public boolean element_isGarbage() {
return isGarbage;
}
* Returns pointer to aElementPtr's shared edge
* =============================================================================
*/
- edge element_getCommonEdge (element aElementPtr, element bElementPtr) {
+ static edge element_getCommonEdge (element aElementPtr, element bElementPtr) {
edge aEdges[] = aElementPtr.edges;
edge bEdges[] = bElementPtr.edges;
int aNumEdge = aElementPtr.numEdge;
return midpoints[e];
}
}
- yada.Assert(0);
+ yada.Assert(false);
}
return circumCenter;
}
* Return FALSE if minimum angle constraint not met
* =============================================================================
*/
- boolean element_checkAngles(double angleConstraint) {
+ boolean checkAngles() {
// double angleConstraint = global_angleConstraint;
if (numCoordinate == 3) {
for (int i = 0; i < 3; i++) {