2016. 10. 18. 19:48

CKMSceneDataSeries *pSeries = g_Doc.m_pSceneData->GetDefaultSeries();

CKMVolume *pVol = pSeries->m_pVolume;


short *pVolData = (short*)(pVol->GetDataSource());

int nDim[3] = {pVol->m_nDim[0], pVol->m_nDim[1], pVol->m_nDim[2]};

m_fPixelSpacing[0] = (float)(pVol->m_fSpacing[0]);

m_fPixelSpacing[1] = (float)(pVol->m_fSpacing[1]);

m_fPixelSpacing[2] = (float)(pVol->m_fSpacing[2]);


m_volumeData->data.setValue(SbVec3i32(dimension), SbDataType(SbDataType::SIGNED_SHORT), 0, pData, SoSFArray::COPY);

m_volumeData->extent.setValue(-(spacing[0] * dimension[0])/2, -(spacing[1] * dimension[1])/2, -(spacing[2] * dimension[2])/2, 

                                 (spacing[0] * dimension[0])/2,  (spacing[1] * dimension[1])/2,  (spacing[2] * dimension[2])/2);

SbVec3i32 dimension = pVolumeData->data.getSize();



/*SoVolumeData* volumeData = new SoVolumeData();

short* rawData = (short*)m_pSceneData->GetDefaultSeries()->m_pVolume->GetDataSource();

int dimension[3] = { m_pVolume->m_nDim[0], m_pVolume->m_nDim[1], m_pVolume->m_nDim[2] };

float spacing[3] = { m_pVolume->m_fSpacing[0], m_pVolume->m_fSpacing[1], m_pVolume->m_fSpacing[2] };

volumeData->data.setValue(SbVec3i32(dimension), SbDataType(SbDataType::SIGNED_SHORT), 0, rawData, SoSFArray::COPY);

volumeData->extent.setValue(-(spacing[0] * dimension[0])/2, -(spacing[1] * dimension[1])/2, -(spacing[2] * dimension[2])/2, 

                           (  spacing[0] * dimension[0])/2,  (spacing[1] * dimension[1])/2,  (spacing[2] * dimension[2])/2);

m_pRootSeparator->addChild(volumeData);*/


#define SO_MOUSE_PRESS_EVENT(EVENT,BUTTON) \

    (SoMouseButtonEvent::isButtonPressEvent(EVENT,SoMouseButtonEvent::BUTTON))


#define SO_MOUSE_RELEASE_EVENT(EVENT,BUTTON) \

    (SoMouseButtonEvent::isButtonReleaseEvent(EVENT,SoMouseButtonEvent::BUTTON))



extent : -130 -130 -56.25 130 130 56.25
ROIManip : 0 0 0 255 255 74

getDimension

GetSeriesFilePathList( );

Sb - Scene basic
So - Scene object

right-handed coordinate system for 3D data
with +z comming out of the screen
all angles are specified in radians
object coordinate space