void sparseGrid::SupportIsContained ( bool &check, const unsigned &w, const unsigned &i, const unsigned &wLower, const unsigned &iLower ) { check = false; std::vector < double > dimensionalCheck ( _N, 0 ); for ( unsigned n = 0; n < _N; n++ ) { double leftBound = _hierarchicalDofsCoordinates[w][i][n] - _hs[n][_dofIdentifier[w][i][n][1]]; double rightBound = _hierarchicalDofsCoordinates[w][i][n] + _hs[n][_dofIdentifier[w][i][n][1]]; double leftBoundLower = _hierarchicalDofsCoordinates[wLower][iLower][n] - _hs[n][_dofIdentifier[wLower][iLower][n][1]]; double rightBoundLower = _hierarchicalDofsCoordinates[wLower][iLower][n] + _hs[n][_dofIdentifier[wLower][iLower][n][1]]; if ( leftBoundLower <= leftBound && rightBound <= rightBoundLower ) dimensionalCheck[n] = 1; } double sumCheck = 0; for ( unsigned n = 0; n < _N; n++ ) { sumCheck += dimensionalCheck[n]; } if ( sumCheck == _N ) check = true; }
bool collide(Unit* a, Unit* b) { return dimensionalCheck(a->x(), a->width(), b->x(), b->width()) && dimensionalCheck(a->y(), a->height(), b->y(), b->height()); }