inline void FMMMLayout :: call_POSTPROCESSING_step(Graph& G,NodeArray<NodeAttributes>& A,
					     EdgeArray<EdgeAttributes>& E,NodeArray
					     <DPoint>& F,NodeArray<DPoint>& F_attr, 
					     NodeArray<DPoint>& F_rep,NodeArray<DPoint>
					     & last_node_movement)
{
  int i;

  for(i = 1; i<= 10; i++)
    calculate_forces(G,A,E,F,F_attr,F_rep,last_node_movement,i,1);

  if((resizeDrawing() == true))
    {
      adapt_drawing_to_ideal_average_edgelength(G,A,E);
      update_boxlength_and_cornercoordinate(G,A);
    }
  for(i = 1; i<= fineTuningIterations(); i++)
    calculate_forces(G,A,E,F,F_attr,F_rep,last_node_movement,i,2);
  if((resizeDrawing() == true))
    adapt_drawing_to_ideal_average_edgelength(G,A,E);
}
Example #2
0
void FMMMLayout :: initialize_all_options()
{
    //setting high level options
    useHighLevelOptions(false); pageFormat(pfSquare); unitEdgeLength(100); 
    newInitialPlacement(false); qualityVersusSpeed(qvsBeautifulAndFast);

    //setting low level options
    //setting general options
    randSeed(100);edgeLengthMeasurement(elmBoundingCircle);
    allowedPositions(apInteger);maxIntPosExponent(40);

    //setting options for the divide et impera step
    pageRatio(1.0);stepsForRotatingComponents(10);
    tipOverCCs(toNoGrowingRow);minDistCC(100);
    presortCCs(psDecreasingHeight);
    
    //setting options for the multilevel step
    minGraphSize(50);galaxyChoice(gcNonUniformProbLowerMass);randomTries(20);
    maxIterChange(micLinearlyDecreasing);maxIterFactor(10);
    initialPlacementMult(ipmAdvanced);
    
    //setting options for the force calculation step
    forceModel(fmNew);springStrength(1);repForcesStrength(1);
    repulsiveForcesCalculation(rfcNMM);stopCriterion(scFixedIterationsOrThreshold);
    threshold(0.01);fixedIterations(30);forceScalingFactor(0.05);
    coolTemperature(false);coolValue(0.99);initialPlacementForces(ipfRandomRandIterNr);
   
    //setting options for postprocessing
    resizeDrawing(true);resizingScalar(1);fineTuningIterations(20);
    fineTuneScalar(0.2);adjustPostRepStrengthDynamically(true);
    postSpringStrength(2.0);postStrengthOfRepForces(0.01);

    //setting options for different repulsive force calculation methods
    frGridQuotient(2); 
    nmTreeConstruction(rtcSubtreeBySubtree);nmSmallCell(scfIteratively);
    nmParticlesInLeaves(25); nmPrecision(4);   
}