58  if ( ! targetSurfaceVtk ) { 
return; } 
 
   60  vtkIdType numberOfPoints = targetSurfaceVtk->GetNumberOfPoints();
 
   65  colors->SetNumberOfComponents(1);
 
   66  colors->SetName(
"USNavigation::Occlusion");
 
   73    float intersection = -1;
 
   74    for ( vtkIdType n = 0; n < numberOfPoints; n++ )
 
   76      colors->InsertNextTuple1(intersection);
 
   79    if ( numberOfPoints > 0 )
 
   81      targetSurfaceVtk->GetPointData()->AddArray(colors);
 
   82      targetSurfaceVtk->GetPointData()->Update();
 
   90  else if ( m_ObstacleStructures.IsNull() )
 
   92    float intersection = 0;
 
   93    for ( vtkIdType n = 0; n < numberOfPoints; n++ )
 
   95      colors->InsertNextTuple1(intersection);
 
   98    if ( numberOfPoints > 0 )
 
  100      targetSurfaceVtk->GetPointData()->AddArray(colors);
 
  101      targetSurfaceVtk->GetPointData()->Update();
 
  108  mitk::Point3D position = nd->GetPosition();
 
  110  point1[0] = position[0]; point1[1] = position[1]; point1[2] = position[2];
 
  115  transformFilter->SetInputData(0, targetSurfaceVtk);
 
  116  transformFilter->SetTransform(m_TargetStructure->GetData()->GetGeometry()->GetVtkTransform());
 
  117  transformFilter->Update();
 
  120  std::vector<bool> occlusion(numberOfPoints, 
false);
 
  123  for (mitk::DataStorage::SetOfObjects::ConstIterator it = m_ObstacleStructures->Begin();
 
  124    it != m_ObstacleStructures->End(); ++it)
 
  131    transformFilter->SetInputData(0, polyData);
 
  132    transformFilter->SetTransform(it->Value()->GetData()->GetGeometry()->GetVtkTransform());
 
  133    transformFilter->Update();
 
  134    polyData = transformFilter->GetOutput();
 
  138    cellLocator->SetDataSet(polyData);
 
  139    cellLocator->BuildLocator();
 
  142    for ( vtkIdType n = 0; n < numberOfPoints; n++ )
 
  145      if ( cellLocator->IntersectWithLine(point1, targetSurfaceVtkTransformed->GetPoint(n), points, 
nullptr) != 0 )
 
  147        occlusion.at(n) = 
true;
 
  152  if ( numberOfPoints > 0 )
 
  155    float one = 1.0f; 
float zero = 0.0f;
 
  156    for ( std::vector<bool>::iterator it = occlusion.begin(); it != occlusion.end(); ++it )
 
  158      colors->InsertNextTuple1(*it ? one : zero);
 
  161    targetSurfaceVtk->GetPointData()->AddArray(colors);
 
  162    targetSurfaceVtk->GetPointData()->Update();