Example #1
0
Test::TestGroup* Test::TestGroup::getLastTest()
{
	TestGroup* current = getLastLeaf();
	if (!current || current->isTest())
		return current;

	return getPreviousTest(current);
}
Example #2
0
void Group::triggerHitListeners()
{
  typedef GroupIteratorType GIType;
  for(GIType iter = getChildGroups(); iter != getLastGroup(); ++iter) {
    (**iter).triggerHitListeners();
  }

  typedef LeafIteratorType LIType;
  for(LIType iter = getChildLeaves(); iter != getLastLeaf(); ++iter) {
    (**iter).triggerHitListeners();
  }

  Node::triggerHitListeners();
}
Example #3
0
void Group::clearChildren()
{
  GroupIteratorType groupIter;
  GroupIteratorType groupEnd = getLastGroup();
  for(groupIter = getChildGroups(); groupIter != groupEnd; ++groupIter) {
    Node& node = **groupIter;
    node._isOwned = false;    
  }

  LeafIteratorType leafIter;
  LeafIteratorType leafEnd = getLastLeaf();
  for(leafIter = getChildLeaves(); leafIter != leafEnd; ++leafIter) {
    Node& node = **leafIter;
    node._isOwned = false;    
  }

  _childGroups.clear();
  _childLeaves.clear();
}
Example #4
0
void Group::compile(std::set <Shape*>& shapes)
{
  GroupIteratorType groupIter;
  GroupIteratorType groupEnd = getLastGroup();
  for(groupIter = getChildGroups(); groupIter != groupEnd; ++groupIter) {
    (*groupIter)->compile(shapes);
  }

  Leaf* leaf = 0;
  Shape* shape = 0;
  LeafIteratorType leafIter;
  LeafIteratorType leafEnd = getLastLeaf();
  for(leafIter = getChildLeaves(); leafIter != leafEnd; ++leafIter) {
    leaf = *leafIter;
    if (typeid(*leaf) == typeid(Shape)) {
      shape = dynamic_cast <Shape*> (leaf);
      shapes.insert(shape);
    }
  }
}
Example #5
0
void Group::update()
{
  _globalTransform[0][0] =  _multiplier[0][0] * _localTransform[0][0];
  _globalTransform[0][0] += _multiplier[0][1] * _localTransform[1][0];
  _globalTransform[0][0] += _multiplier[0][2] * _localTransform[2][0];
  _globalTransform[0][0] += _multiplier[0][3] * _localTransform[3][0];

  _globalTransform[0][1] =  _multiplier[0][0] * _localTransform[0][1];
  _globalTransform[0][1] += _multiplier[0][1] * _localTransform[1][1];
  _globalTransform[0][1] += _multiplier[0][2] * _localTransform[2][1];
  _globalTransform[0][1] += _multiplier[0][3] * _localTransform[3][1];

  _globalTransform[0][2] =  _multiplier[0][0] * _localTransform[0][2];
  _globalTransform[0][2] += _multiplier[0][1] * _localTransform[1][2];
  _globalTransform[0][2] += _multiplier[0][2] * _localTransform[2][2];
  _globalTransform[0][2] += _multiplier[0][3] * _localTransform[3][2];

  _globalTransform[0][3] =  _multiplier[0][0] * _localTransform[0][3];
  _globalTransform[0][3] += _multiplier[0][1] * _localTransform[1][3];
  _globalTransform[0][3] += _multiplier[0][2] * _localTransform[2][3];
  _globalTransform[0][3] += _multiplier[0][3] * _localTransform[3][3];

  _globalTransform[1][0] =  _multiplier[1][0] * _localTransform[0][0];
  _globalTransform[1][0] += _multiplier[1][1] * _localTransform[1][0];
  _globalTransform[1][0] += _multiplier[1][2] * _localTransform[2][0];
  _globalTransform[1][0] += _multiplier[1][3] * _localTransform[3][0];

  _globalTransform[1][1] =  _multiplier[1][0] * _localTransform[0][1];
  _globalTransform[1][1] += _multiplier[1][1] * _localTransform[1][1];
  _globalTransform[1][1] += _multiplier[1][2] * _localTransform[2][1];
  _globalTransform[1][1] += _multiplier[1][3] * _localTransform[3][1];

  _globalTransform[1][2] =  _multiplier[1][0] * _localTransform[0][2];
  _globalTransform[1][2] += _multiplier[1][1] * _localTransform[1][2];
  _globalTransform[1][2] += _multiplier[1][2] * _localTransform[2][2];
  _globalTransform[1][2] += _multiplier[1][3] * _localTransform[3][2];

  _globalTransform[1][3] =  _multiplier[1][0] * _localTransform[0][3];
  _globalTransform[1][3] += _multiplier[1][1] * _localTransform[1][3];
  _globalTransform[1][3] += _multiplier[1][2] * _localTransform[2][3];
  _globalTransform[1][3] += _multiplier[1][3] * _localTransform[3][3];


  _globalTransform[2][0] =  _multiplier[2][0] * _localTransform[0][0];
  _globalTransform[2][0] += _multiplier[2][1] * _localTransform[1][0];
  _globalTransform[2][0] += _multiplier[2][2] * _localTransform[2][0];
  _globalTransform[2][0] += _multiplier[2][3] * _localTransform[3][0];

  _globalTransform[2][1] =  _multiplier[2][0] * _localTransform[0][1];
  _globalTransform[2][1] += _multiplier[2][1] * _localTransform[1][1];
  _globalTransform[2][1] += _multiplier[2][2] * _localTransform[2][1];
  _globalTransform[2][1] += _multiplier[2][3] * _localTransform[3][1];

  _globalTransform[2][2] =  _multiplier[2][0] * _localTransform[0][2];
  _globalTransform[2][2] += _multiplier[2][1] * _localTransform[1][2];
  _globalTransform[2][2] += _multiplier[2][2] * _localTransform[2][2];
  _globalTransform[2][2] += _multiplier[2][3] * _localTransform[3][2];

  _globalTransform[2][3] =  _multiplier[2][0] * _localTransform[0][3];
  _globalTransform[2][3] += _multiplier[2][1] * _localTransform[1][3];
  _globalTransform[2][3] += _multiplier[2][2] * _localTransform[2][3];
  _globalTransform[2][3] += _multiplier[2][3] * _localTransform[3][3];


  _globalTransform[3][0] =  _multiplier[3][0] * _localTransform[0][0];
  _globalTransform[3][0] += _multiplier[3][1] * _localTransform[1][0];
  _globalTransform[3][0] += _multiplier[3][2] * _localTransform[2][0];
  _globalTransform[3][0] += _multiplier[3][3] * _localTransform[3][0];

  _globalTransform[3][1] =  _multiplier[3][0] * _localTransform[0][1];
  _globalTransform[3][1] += _multiplier[3][1] * _localTransform[1][1];
  _globalTransform[3][1] += _multiplier[3][2] * _localTransform[2][1];
  _globalTransform[3][1] += _multiplier[3][3] * _localTransform[3][1];

  _globalTransform[3][2] =  _multiplier[3][0] * _localTransform[0][2];
  _globalTransform[3][2] += _multiplier[3][1] * _localTransform[1][2];
  _globalTransform[3][2] += _multiplier[3][2] * _localTransform[2][2];
  _globalTransform[3][2] += _multiplier[3][3] * _localTransform[3][2];

  _globalTransform[3][3] =  _multiplier[3][0] * _localTransform[0][3];
  _globalTransform[3][3] += _multiplier[3][1] * _localTransform[1][3];
  _globalTransform[3][3] += _multiplier[3][2] * _localTransform[2][3];
  _globalTransform[3][3] += _multiplier[3][3] * _localTransform[3][3];

  typedef GroupIteratorType GIType;
  for(GIType iter = getChildGroups(); iter != getLastGroup(); ++iter) {
    (*iter)->update(_globalTransform);
  }

  typedef LeafIteratorType LIType;
  for(LIType iter = getChildLeaves(); iter != getLastLeaf(); ++iter) {
    (*iter)->update(_globalTransform);
  }

}