MCPcopy Create free account
hub / github.com/Kitware/VTK / DrawImageGL2PS

Method DrawImageGL2PS

Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx:2745–2776  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

2743
2744//------------------------------------------------------------------------------
2745void vtkOpenGLContextDevice2D::DrawImageGL2PS(float p[2], vtkImageData* input)
2746{
2747 // Must be unsigned char -- otherwise OpenGL rendering behaves badly anyway.
2748 if (!vtkDataTypesCompare(input->GetScalarType(), VTK_UNSIGNED_CHAR))
2749 {
2750 vtkErrorMacro("Invalid image format: Expected unsigned char scalars.");
2751 return;
2752 }
2753
2754 // Convert to float for GL2PS
2755 vtkNew<vtkImageData> image;
2756 image->ShallowCopy(input);
2757 vtkDataArray* s = image->GetPointData()->GetScalars();
2758 size_t numVals = (s->GetNumberOfComponents() * s->GetNumberOfTuples());
2759 unsigned char* vals = vtkAOSDataArrayTemplate<unsigned char>::FastDownCast(s)->GetPointer(0);
2760 vtkNew<vtkFloatArray> scalars;
2761 scalars->SetNumberOfComponents(s->GetNumberOfComponents());
2762 scalars->SetNumberOfTuples(s->GetNumberOfTuples());
2763 for (size_t i = 0; i < numVals; ++i)
2764 {
2765 scalars->SetValue(static_cast<vtkIdType>(i), vals[i] / 255.f);
2766 }
2767 image->GetPointData()->SetScalars(scalars);
2768
2769 // Instance always exists when this method is called:
2770 vtkOpenGLGL2PSHelper* gl2ps = vtkOpenGLGL2PSHelper::GetInstance();
2771
2772 float tp[2] = { p[0], p[1] };
2773 this->TransformPoint(tp[0], tp[1]);
2774 double pos[3] = { static_cast<double>(tp[0]), static_cast<double>(tp[1]), 0. };
2775 gl2ps->DrawImage(image, pos);
2776}
2777
2778//------------------------------------------------------------------------------
2779void vtkOpenGLContextDevice2D::DrawImageGL2PS(float p[2], float scale, vtkImageData* image)

Callers 1

DrawImageMethod · 0.95

Calls 15

TransformPointMethod · 0.95
SetScalarsMethod · 0.80
FastDownCastFunction · 0.50
roundFunction · 0.50
GetScalarTypeMethod · 0.45
ShallowCopyMethod · 0.45
GetScalarsMethod · 0.45
GetPointDataMethod · 0.45
GetNumberOfComponentsMethod · 0.45
GetNumberOfTuplesMethod · 0.45
GetPointerMethod · 0.45
SetNumberOfComponentsMethod · 0.45

Tested by

no test coverage detected