void mitk::ContourModelToPointSetFilter::GenerateData() { mitk::ContourModel::Pointer inputContour = static_cast<mitk::ContourModel *>(this->GetInput(0)); mitk::ContourModelToPointSetFilter::OutputType *outputPointSet = this->GetOutput(); auto it = inputContour->IteratorBegin(); auto end = inputContour->IteratorEnd(); unsigned int pointId = 0; std::size_t timestep = inputContour->GetTimeSteps(); for (std::size_t i = 0; i < timestep; i++) { while (it <= end) { mitk::Point3D p = (*it)->Coordinates; mitk::PointOperation popInsert( mitk::OpINSERT, inputContour->GetTimeGeometry()->TimeStepToTimePoint(timestep), p, pointId++, false); outputPointSet->ExecuteOperation(&popInsert); it++; } } }
void mitk::ContourSetToPointSetFilter::GenerateData() { mitk::ContourSet* input = (mitk::ContourSet*) (this->GetInput()); mitk::PointSet::Pointer output = this->GetOutput(); mitk::ContourSet::ContourVectorType contourVec = input->GetContours(); mitk::ContourSet::ContourIterator contourIt = contourVec.begin(); unsigned int pointId = 0; while ( contourIt != contourVec.end() ) { mitk::Contour* nextContour = (mitk::Contour*) (*contourIt).second; mitk::Contour::InputType idx = nextContour->GetContourPath()->StartOfInput(); mitk::Contour::OutputType point; mitk::Contour::InputType end = nextContour->GetContourPath()->EndOfInput(); if (end > 50000) end = 0; while ( idx <= end ) { point = nextContour->GetContourPath()->Evaluate(idx); Contour::BoundingBoxType::PointType p; p.CastFrom(point); mitk::PointOperation popInsert( mitk::OpINSERT, p, pointId++ ); mitk::PointOperation popDeactivate( mitk::OpDESELECTPOINT, p , pointId++ ); output->ExecuteOperation( &popInsert ); output->ExecuteOperation( &popDeactivate ); idx+=m_Frequency; } contourIt++; } }