}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void vvImageContour::Update(double value) {
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void vvImageContour::Update(double value) {
if (!mSlicer) return;
if (mPreviousValue == value) {
if (mPreviousSlice == mSlicer->GetSlice()) {
if (mPreviousTSlice == mSlicer->GetTSlice()) {
if (!mSlicer) return;
if (mPreviousValue == value) {
if (mPreviousSlice == mSlicer->GetSlice()) {
if (mPreviousTSlice == mSlicer->GetTSlice()) {
//------------------------------------------------------------------------------
void vvImageContour::UpdateWithPreserveMemoryMode() {
// Only change actor visibility if tslice change
//------------------------------------------------------------------------------
void vvImageContour::UpdateWithPreserveMemoryMode() {
// Only change actor visibility if tslice change
vtkMarchingSquares * mSquares = mSquaresList[mTSlice];
vtkImageClip * mClipper = mClipperList[mTSlice];
vtkActor * mSquaresActor = mSquaresActorList[mTSlice];
int orientation = ComputeCurrentOrientation();
vtkMarchingSquares * mSquares = mSquaresList[mTSlice];
vtkImageClip * mClipper = mClipperList[mTSlice];
vtkActor * mSquaresActor = mSquaresActorList[mTSlice];
int orientation = ComputeCurrentOrientation();
UpdateActor(mSquaresActor, mSquares, mClipper, mValue, orientation, mSlice);
mSquaresActorList[mTSlice]->VisibilityOn();
UpdateActor(mSquaresActor, mSquares, mClipper, mValue, orientation, mSlice);
mSquaresActorList[mTSlice]->VisibilityOn();
if (mPreviousTslice != mTSlice) {
if (mPreviousTslice != -1) mSquaresActorList[mPreviousTslice]->VisibilityOff();
}
if (mPreviousTslice != mTSlice) {
if (mPreviousTslice != -1) mSquaresActorList[mPreviousTslice]->VisibilityOff();
}
mListOfCachedContourActors.resize(dim);
for(int d=0; d<dim; d++) {
int size = mSlicer->GetImage()->GetSize()[d];
mListOfCachedContourActors.resize(dim);
for(int d=0; d<dim; d++) {
int size = mSlicer->GetImage()->GetSize()[d];
mListOfCachedContourActors[d].resize(size);
for(int j=0; j<size; j++) {
mListOfCachedContourActors[d][j] = NULL;
mListOfCachedContourActors[d].resize(size);
for(int j=0; j<size; j++) {
mListOfCachedContourActors[d][j] = NULL;
vtkMarchingSquares * squares,
vtkImageClip * clipper,
double threshold, int orientation, int slice) {
vtkMarchingSquares * squares,
vtkImageClip * clipper,
double threshold, int orientation, int slice) {
for(int i=0; i<6; i++) extent2[i] = extent3[i];
double s = (double)extent[orientation*2]*(double)mSlicer->GetImage()->GetSpacing()[orientation]; // in mm
for(int i=0; i<6; i++) extent2[i] = extent3[i];
double s = (double)extent[orientation*2]*(double)mSlicer->GetImage()->GetSpacing()[orientation]; // in mm
clipper->SetOutputWholeExtent(extent2[0],extent2[1],extent2[2],
extent2[3],extent2[4],extent2[5]);
if (mHiddenImage) delete extent2;
// Move the actor to be visible
clipper->SetOutputWholeExtent(extent2[0],extent2[1],extent2[2],
extent2[3],extent2[4],extent2[5]);
if (mHiddenImage) delete extent2;
// Move the actor to be visible
// DD(mSlicer->GetRenderer()->GetActiveCamera()->GetPosition()[0]);
if (mSlicer->GetRenderer()->GetActiveCamera()->GetPosition()[0] > slice) {
// DD(mSlicer->GetRenderer()->GetActiveCamera()->GetPosition()[0]);
if (mSlicer->GetRenderer()->GetActiveCamera()->GetPosition()[0] > slice) {
// DD(mSlicer->GetRenderer()->GetActiveCamera()->GetPosition()[1]);
if (mSlicer->GetRenderer()->GetActiveCamera()->GetPosition()[1] > slice) {
actor->SetPosition(0,1,0);
} else {
actor->SetPosition(0,-1,0);
}
// DD(mSlicer->GetRenderer()->GetActiveCamera()->GetPosition()[1]);
if (mSlicer->GetRenderer()->GetActiveCamera()->GetPosition()[1] > slice) {
actor->SetPosition(0,1,0);
} else {
actor->SetPosition(0,-1,0);
}