2015. 9. 10. 19:55

Open Inventor 에서 Raw Volume 데이터를 SoVolume에 넣기


BYTE* pVolumeData = new BYTE[nDim[0] * nDim[1] * nDim[2]];

m_pVolume = new SoVolume();

m_pVolume->SetDataSource(pVolumeData); // VolumeData 원본 필요 
m_pVolume->data.setValue(SbVec3i32(infoVolume.nDim), SbDataType(SbDataType::SIGNED_SHORT), 0, 
pVolumeData, SoSFArray::COPY);
m_pVolume->ldmResourceParameters.getValue()->overlapping = 0;
m_pVolume->ldmResourceParameters.getValue()->
tileDimension.setValue(512,512,512);
m_pVolume->extent.setValue(SbBox3f(
-(infoVolume.nDim[0]*infoVolume.fSpacing[0])/2, 
             -(infoVolume.nDim[1]*infoVolume.fSpacing[1])/2, 
             -(infoVolume.nDim[2]*infoVolume.fSpacing[2])/2,
+(infoVolume.nDim[0]*infoVolume.fSpacing[0])/2, 
             +(infoVolume.nDim[1]*infoVolume.fSpacing[1])/2, 
             +(infoVolume.nDim[2]*infoVolume.fSpacing[2])/2 )); m_pVolume->SetVolumeInfo(infoVolume.nDim, infoVolume.fSpacing);