2016. 1. 7. 01:16

- Volume 데이터는 응용 프로그램의 메모리에 저장되어 있다고 가정

- VolumeViz에서 사용 가능한 Volume 데이터를 만드는 것

Volume 데이터를 묘사할 파라미터 설정


- VolumeViz가 시스템 메모리에 저장된 Volume에 접근하는 방법

Volume 차원 : 256 x 256 x 256

- 데이터 값은 부호없는 8비트 정수(bytes : unsigned 8-bit integers)

- 데이터와 특성은 SoVolumeData 노드의 setValue() 함수를 사용해서 데이터 필드를 설정

- 이 함수의 세 번째 파라미터는 numSigBits(각 데이터 값에서 중요 비트의 수)

- 이 경우에 우리는 모든 8비트를 사용하므로 이 파라미터를 0으로 설정하고, 이것은 모든 비트를 사용한다는 의미

- 다른 경우의 예에서 16비트 값에서 오직 12 비트를 사용하는 DICOM 데이터의 경우 이 파리미터를 12 로 설정

- 만약 VolumeViz가 데이터의 복사본을 만들면, 응용 프로그램은 메모리를 해제할 수 있음


// Pointer to Volume data

unsigned char* pData = new unsigned char [numVoxels];

...


// Volume Characteristics

SbVec3i32 volDim(256, 256, 256);

SbDataType dataType = SbDataType::UNSIGNED_BYTE;


SoVolumeData* pVolData = new SoVolumeData();

pVolData->data.setValue(volDim, dataType, 0, 

                             (void*)pData, SoSFArray::NO_COPY);