Exemplo n.º 1
0
void ZLTextView::ViewStyle::applyControls(const ZLTextWordCursor &begin, const ZLTextWordCursor &end) {
	for (ZLTextWordCursor cursor = begin; !cursor.equalWordNumber(end); cursor.nextWord()) {
		const ZLTextElement &element = cursor.element();
		if (element.kind() == ZLTextElement::CONTROL_ELEMENT) {
			applyControl((ZLTextControlElement&)element);
		} else if (element.kind() == ZLTextElement::FORCED_CONTROL_ELEMENT) {
			applyControl((ZLTextForcedControlElement&)element);
		}
	}
}
Exemplo n.º 2
0
void generateInterpolatedThread() { 

  Thread* start = new Thread(*glThreads[planThread]->getThread());
  Thread* end = new Thread(*glThreads[endThread]->getThread());
  numApprox = 10;
  vector<Thread*> traj;
  traj.resize(numApprox);
  traj[0] = start;
  traj[traj.size()-1]= end; 
  vector<VectorXd> controls;
  cout << "calling interpolate" << endl; 
  interpolateThreads(traj, controls);
  vector<VectorXd> U; 

  for (int i = 0; i < traj.size(); i++) {
    VectorXd ctrl(12);
    ctrl.setZero();
    U.push_back(ctrl); 
  }

  Iterative_Control* ic = new Iterative_Control(traj.size(), traj.front()->num_pieces());

	int num_iters = 5;  

  ic->iterative_control_opt(traj, U, num_iters);
  vector<vector<Thread*> > thread_visualization_data;
	vector<vector<VectorXd> > thread_control_data;
  for (int i = 0; i < traj.size(); i++) { 
    vector<Thread*> tmp;
    tmp.push_back(traj[i]);
    thread_visualization_data.push_back(tmp); 
  }
  
  vector<Thread*> control_traj; 
  
  control_traj.push_back(new Thread(*glThreads[planThread]->getThread()));
  Thread* prevThread = control_traj.front(); 
  
  for (int i = 1; i < traj.size(); i++) { 
    Thread* startThread = new Thread(*prevThread);
    applyControl(startThread, U[i-1], START_AND_END);
    control_traj.push_back(startThread);
    prevThread = startThread; 
  }
  thread_visualization_data.push_back(control_traj);


	thread_visualization_data.resize(0);
	ic->AllFiles_To_Traj(num_iters, thread_visualization_data, thread_control_data);

	for (int i=0; i < thread_visualization_data.size(); i++)
	{
	std::cout << "size: " << thread_visualization_data[i].size() << std::endl;
	}
  
  setThreads(thread_visualization_data);

}