PalmData HandData::getCopyOfPalmData(Hand hand) const { QReadLocker locker(&_palmsLock); // the palms are not necessarily added in left-right order, // so we have to search for the correct hand for (const auto& palm : _palms) { if (palm.whichHand() == hand && palm.isActive()) { return palm; } } return PalmData(); // invalid hand }
PalmData& HandData::addNewPalm() { _palms.push_back(PalmData(this)); return _palms.back(); }
PalmData& HandData::addNewPalm(Hand whichHand) { QWriteLocker locker(&_palmsLock); _palms.push_back(PalmData(this, whichHand)); return _palms.back(); }