/** * Notify all listeners of this new event * @param event */ private void sendEvent( TriangulationProcessEvent event ) { for( TriangulationProcessListener l : _listeners ) { l.triangulationEvent( event, _tcx.getTriangulatable() ); } }
public void shutdown() { _awaitingTermination = true; _tcx.terminateTriangulation(); resume(); }
public void prepareTriangulation( Triangulatable t ) { _triUnit = t; _triangulationMode = t.getTriangulationMode(); t.prepareTriangulation( this ); }
/** * We use a balancing tree to locate a node smaller or equal to * given key value * * @param x * @return */ public AdvancingFrontNode locateNode( TriangulationPoint point ) { return locateNode( point.getX() ); }
public AdvancingFrontNode( TriangulationPoint point ) { this.point = point; value = point.getX(); key = Double.valueOf( value ); // XXX: BST }
private void start() { if( _thread == null || _thread.getState() == State.TERMINATED ) { _isTerminated = false; _thread = new Thread( this, _algorithm.name() + "." + _tcx.getTriangulationMode() ); _thread.start(); sendEvent( TriangulationProcessEvent.Started ); } else { // Triangulation already running. Terminate it so we can start a new shutdown(); _restart = true; } }
public static void triangulate( TriangulationAlgorithm algorithm, Triangulatable t ) { TriangulationContext<?> tcx; // long time = System.nanoTime(); tcx = createContext( algorithm ); tcx.prepareTriangulation( t ); triangulate( tcx ); // logger.info( "Triangulation of {} points [{}ms]", tcx.getPoints().size(), ( System.nanoTime() - time ) / 1e6 ); }
public void setActiveNode( AdvancingFrontNode node ) { _activeNode = node; _tcx.update("setWorkingNode"); }
public int getStepCount() { return _tcx.getStepCount(); }
public void requestRead() { _tcx.waitUntilNotified( true ); }
public void finalizeTriangulation() { _triUnit.addTriangles( _triList ); _triList.clear(); }
public void clear() { _points.clear(); _terminated = false; if( _debug != null ) { _debug.clear(); } _stepCount=0; }
/** * Triangulate a Polygon * * @param ps */ public void triangulate( Polygon polygon ) { _triangulations.clear(); _triangulations.add( polygon ); start(); }
public void setPrimaryTriangle( DelaunayTriangle triangle ) { _primaryTriangle = triangle; _tcx.update("setPrimaryTriangle"); }
public void setSecondaryTriangle( DelaunayTriangle triangle ) { _secondaryTriangle = triangle; _tcx.update("setSecondaryTriangle"); }
public void setActiveConstraint( DTSweepConstraint e ) { _activeConstraint = e; _tcx.update("setWorkingSegment"); }