void SPPackingStrategy::initialPacking(Layout &layout)
{
  int rectNum = layout.getRectNum();
  if (rectNum < 2)
      return;

  vector<int> s;
  for (int i = 0; i < rectNum; ++ i)
    s.push_back(i);
  random_shuffle(s.begin(), s.end());
  SPPackingCommand *spcmd = new SPPackingCommand(s, s);
  #ifdef __OUT__
  cout << "Packing Command in SPPackingStrategy::initialPacking" << endl;
  cout << *spcmd;
  #endif

  setPackingCommand(spcmd);
  spcmd->interpretToLayout(layout);
  #ifdef __OUT__
  cout << "Layout after SPPackingStrategy::initialPacking" << endl;
  cout << layout;
  #endif
}
Пример #2
0
void SPPackingStrategy::initialPacking(Layout &layout)
{
    int rectNum = layout.getRectNum();
    if (rectNum < 2)
        return;

    vector<int> s1, s2;
    for (int i = 0; i < rectNum; ++ i)
    {
        s1.push_back(i);
    }
    s2 = s1;
    random_shuffle(s1.begin(), s1.end());
    random_shuffle(s2.begin(), s2.end());
    SPPackingCommand *spcmd = new SPPackingCommand(s1, s2);
// cout << "Packing Command in SPPackingStrategy::initialPacking" << endl;
// cout << *spcmd;

    setPackingCommand(spcmd);
    spcmd->interpretToLayout(layout);
    //cout << "Layout after SPPackingStrategy::initialPacking" << endl;
// cout << layout;
}