void fillIntArrayWithBuffer(int id, int *array){ intEntry *temp = findIntEntry(id); if(NULL == temp) return; int size = intSize(id); int i = 0; while(i < size){ *(array+i) = *((temp->buffer)+i); i++; } }
unsigned int rotate ( unsigned int value, int n){ unsigned int result, bits, size; size = intSize(); if ( n > 0 ) n = n % size; else n = -(-n % size); if ( n == 0 ) return value; else if ( n > 0 ){ // left rotate bits = value >> (size - n); result = value << n | bits; }
void SPlaneSlicer::setReslicerExtent() { ::fwData::Image::csptr extentImg = this->getInput< ::fwData::Image >(s_EXTENT_IN); SLM_ASSERT("No extentImg.", extentImg); const auto& size = extentImg->getSize(); const auto& origin = extentImg->getOrigin(); const auto& spacing = extentImg->getSpacing(); // cast size_t to int. std::vector<int> intSize(size.size()); std::transform(size.begin(), size.end(), intSize.begin(), [](size_t s) -> int { return std::max(static_cast<int>(s) - 1, 0); }); switch (m_orientation) { case ::fwDataTools::helper::MedicalImageAdaptor::Orientation::X_AXIS: m_reslicer->SetOutputExtent(0, intSize[1], 0, intSize[2], 0, 0); m_reslicer->SetOutputOrigin(origin[1], origin[2], origin[0]); m_reslicer->SetOutputSpacing(spacing[1], spacing[2], spacing[0]); break; case ::fwDataTools::helper::MedicalImageAdaptor::Orientation::Y_AXIS: m_reslicer->SetOutputExtent(0, intSize[0], 0, intSize[2], 0, 0); m_reslicer->SetOutputOrigin(origin[0], origin[2], origin[1]); m_reslicer->SetOutputSpacing(spacing[0], spacing[2], spacing[1]); break; case ::fwDataTools::helper::MedicalImageAdaptor::Orientation::Z_AXIS: m_reslicer->SetOutputExtent(0, intSize[0], 0, intSize[1], 0, 0); m_reslicer->SetOutputOrigin(origin[0], origin[1], origin[2]); m_reslicer->SetOutputSpacing(spacing[0], spacing[1], spacing[2]); break; } }