Exemple #1
0
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;
    }
}