Commit a2c061cf authored by Utkarsh Ayachit's avatar Utkarsh Ayachit
Browse files

Merge remote-tracking branch 'master' into 14897_fix_cam_reader

* master: (35 commits)
  Fix missing header
  Some compiler fixes for Android
  Move table resizing out of core mapping routine
  Fix some recent compile issues
  IOXML: add test for outputting to a string
  Better handling of thick lines in a couple places
  Update to fix failing tests
  Fix compiler issue on gcc
  Thick lines only use a GS when the hardware lacks support
  Added point array support to vtkAMRBaseReader
  Remove "have tcoords" print statement
  Added VTK_FALLTHROUGH in case without break
  Fixed ‘no newline at end of file’ warnings
  Replace VTKGL2 define with VTK_OPENGL2
  Ensure that input data is synced.
  vtkOpenGLRenderUtilities: move Render{Quad,Triangle}
  QVTKGraphicsItem: support the OpenGL2 backend
  fix importing to work for no mtl file + no warnings for empty texture image
  vtkGenericOpenGLRenderWindow: add PushState/PopState methods
  qtgraphicsview: remove unused vtkgl.h includes
  ...
parents 23dff2bd dbea2d5e
......@@ -198,7 +198,22 @@ endif()
# inherit settings in recursive loads
get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE )
if( _CMAKE_IN_TRY_COMPILE )
include( "${CMAKE_CURRENT_SOURCE_DIR}/../android.toolchain.config.cmake" OPTIONAL )
# walk up to try to find the config file
set (go_up "/")
set (go_up_length 0)
set (found FALSE)
while (NOT found AND go_up_length LESS 30)
if (EXISTS "${CMAKE_CURRENT_BINARY_DIR}/${go_up}android.toolchain.config.cmake")
include("${CMAKE_CURRENT_BINARY_DIR}/${go_up}android.toolchain.config.cmake")
set (found TRUE)
endif()
if (EXISTS "${CMAKE_CURRENT_BINARY_DIR}/${go_up}CMakeFiles/android.toolchain.config.cmake")
include("${CMAKE_CURRENT_BINARY_DIR}/${go_up}CMakeFiles/android.toolchain.config.cmake")
set (found TRUE)
endif()
set (go_up "${go_up}../")
string(LENGTH ${go_up} go_up_length)
endwhile()
endif()
# this one is important
......@@ -216,7 +231,7 @@ set( CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "" )
set( CMAKE_SKIP_RPATH TRUE CACHE BOOL "If set, runtime paths are not added when using shared libraries." )
# NDK search paths
set( ANDROID_SUPPORTED_NDK_VERSIONS ${ANDROID_EXTRA_NDK_VERSIONS} -r10d -r10c -r10b -r10 -r9d -r9c -r9b -r9 -r8e -r8d -r8c -r8b -r8 -r7c -r7b -r7 -r6b -r6 -r5c -r5b -r5 "" )
set( ANDROID_SUPPORTED_NDK_VERSIONS ${ANDROID_EXTRA_NDK_VERSIONS} -r10e -r10d -r10c -r10b -r10 -r9d -r9c -r9b -r9 -r8e -r8d -r8c -r8b -r8 -r7c -r7b -r7 -r6b -r6 -r5c -r5b -r5 "" )
if( NOT DEFINED ANDROID_NDK_SEARCH_PATHS )
if( CMAKE_HOST_WIN32 )
file( TO_CMAKE_PATH "$ENV{PROGRAMFILES}" ANDROID_NDK_SEARCH_PATHS )
......
......@@ -18,7 +18,6 @@
#include "vtkBitArray.h"
#include "vtkMath.h"
#include "vtkMathConfigure.h"
#include "vtkMutexLock.h"
#include "vtkObjectFactory.h"
#include "vtkStringArray.h"
#include "vtkVariantArray.h"
......@@ -82,8 +81,6 @@ vtkLookupTable::vtkLookupTable(int sze, int ext)
this->Scale = VTK_SCALE_LINEAR;
this->OpaqueFlag=1;
this->ResizeMutex = vtkSimpleMutexLock::New();
}
//----------------------------------------------------------------------------
......@@ -91,7 +88,6 @@ vtkLookupTable::~vtkLookupTable()
{
this->Table->UnRegister( this );
this->Table = NULL;
this->ResizeMutex->Delete();
}
//----------------------------------------------------------------------------
......@@ -573,6 +569,7 @@ void vtkLookupTable::SetTable(vtkUnsignedCharArray *table)
this->Table = table;
this->Table->Register(this);
this->NumberOfColors = this->Table->GetNumberOfTuples();
this->ResizeTableForSpecialColors();
// If InsertTime is not modified the array will be rebuilt. So we
// use the same approach that the SetTableValue function does.
......@@ -644,7 +641,7 @@ namespace {
//----------------------------------------------------------------------------
template<class T>
void vtkLookupTableMapData(vtkLookupTable *self, vtkSimpleMutexLock *mutex,
void vtkLookupTableMapData(vtkLookupTable *self,
T *input, unsigned char *output, int length,
int inIncr, int outFormat, TableParameters & p)
{
......@@ -660,20 +657,6 @@ void vtkLookupTableMapData(vtkLookupTable *self, vtkSimpleMutexLock *mutex,
vtkUnsignedCharArray* lookupTable = self->GetTable();
vtkIdType numberOfColors = lookupTable->GetNumberOfTuples();
vtkIdType neededSize = (numberOfColors + vtkLookupTable::NUMBER_OF_SPECIAL_COLORS) *
lookupTable->GetNumberOfComponents();
// Since this involves a potential array resize and this function
// might be accessed concurently from more than one thread, we need a
// mutex here. This shouldn't affect performance much if this function
// is used to map many input values, but if it is called repeatedly
// with short input arrays, performance may be much worse.
mutex->Lock();
if (lookupTable->GetSize() < neededSize)
{
lookupTable->Resize(numberOfColors + vtkLookupTable::NUMBER_OF_SPECIAL_COLORS);
}
mutex->Unlock();
unsigned char* table = lookupTable->GetPointer(0);
......@@ -1172,8 +1155,7 @@ void vtkLookupTable::MapScalarsThroughTable2(void *input,
{
newInput->SetValue(i, bitArray->GetValue(id));
}
vtkLookupTableMapData(this, this->ResizeMutex,
static_cast<unsigned char*>(newInput->GetPointer(0)),
vtkLookupTableMapData(this, static_cast<unsigned char*>(newInput->GetPointer(0)),
output, numberOfValues,
inputIncrement, outputFormat, p);
newInput->Delete();
......@@ -1182,7 +1164,7 @@ void vtkLookupTable::MapScalarsThroughTable2(void *input,
break;
vtkTemplateMacro(
vtkLookupTableMapData(this, this->ResizeMutex, static_cast<VTK_TT*>(input),output,
vtkLookupTableMapData(this, static_cast<VTK_TT*>(input),output,
numberOfValues, inputIncrement, outputFormat, p)
);
default:
......@@ -1205,6 +1187,7 @@ void vtkLookupTable::SetNumberOfTableValues(vtkIdType number)
}
this->Modified();
this->NumberOfColors = number;
this->ResizeTableForSpecialColors();
this->Table->SetNumberOfTuples(number);
}
......@@ -1367,6 +1350,7 @@ void vtkLookupTable::DeepCopy(vtkScalarsToColors *obj)
this->NanColor[i] = lut->NanColor[i];
}
this->Table->DeepCopy(lut->Table);
this->ResizeTableForSpecialColors();
this->Superclass::DeepCopy(obj);
}
......@@ -1388,3 +1372,13 @@ void vtkLookupTable::GetIndexedColor(vtkIdType idx, double rgba[4])
}
this->GetNanColor(rgba);
}
//----------------------------------------------------------------------------
void vtkLookupTable::ResizeTableForSpecialColors()
{
vtkIdType neededColors = this->NumberOfColors + vtkLookupTable::NUMBER_OF_SPECIAL_COLORS;
if (this->Table->GetSize() < neededColors*this->Table->GetNumberOfComponents())
{
this->Table->Resize(neededColors);
}
}
......@@ -56,8 +56,6 @@
#include "vtkUnsignedCharArray.h" // Needed for inline method
class vtkSimpleMutexLock;
#define VTK_RAMP_LINEAR 0
#define VTK_RAMP_SCURVE 1
#define VTK_RAMP_SQRT 2
......@@ -361,7 +359,9 @@ protected:
int OpaqueFlag;
vtkTimeStamp OpaqueFlagBuildTime;
vtkSimpleMutexLock* ResizeMutex;
// Description:
// Resize the LookupTable to have enough room for the out-of-range colors
void ResizeTableForSpecialColors();
private:
vtkLookupTable(const vtkLookupTable&); // Not implemented.
......
......@@ -95,7 +95,7 @@ int vtkWin32ProcessOutputWindow::Initialize()
// Construct the executable name from the process id, pointer to
// this output window instance, and a count. This should be unique.
sprintf(exeName, "vtkWin32OWP_%"PRIdword"_%p_%u.exe",
sprintf(exeName, "vtkWin32OWP_%" PRIdword "_%p_%u.exe",
GetCurrentProcessId(), this, this->Count++);
// Allocate a buffer to hold the executable path.
......
......@@ -54,4 +54,4 @@ private:
void operator=(const vtkOpenGLMoleculeMapper&); // Not implemented.
};
#endif
\ No newline at end of file
#endif
......@@ -2,7 +2,6 @@
#include "GraphLayoutViewItem.h"
#include "vtkGraphLayoutView.h"
#include "vtkGenericOpenGLRenderWindow.h"
#include "vtkgl.h"
#include "QVTKInteractor.h"
#include "vtkXMLTreeReader.h"
#include "vtkRenderedTreeAreaRepresentation.h"
......
......@@ -2,7 +2,6 @@
#include "TreeRingViewItem.h"
#include "vtkTreeRingView.h"
#include "vtkGenericOpenGLRenderWindow.h"
#include "vtkgl.h"
#include "QVTKInteractor.h"
#include "vtkXMLTreeReader.h"
#include "vtkRenderedTreeAreaRepresentation.h"
......
......@@ -23,5 +23,6 @@ vtk_add_test_cxx(${vtk-module}CxxTests tests
TestTessellatedBoxSource.cxx,NO_VALID
TestTextSource.cxx,NO_VALID
TestTexturedSphereSource.cxx,NO_VALID
TestGlyphSource2DResolution.cxx,
)
vtk_test_cxx_executable(${vtk-module}CxxTests tests)
/*=========================================================================
Program: Visualization Toolkit
Module: TestGlyphSource2DResolution.cxx
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// Description
// This tests the circle resolution parameter for vtkGlyphSource2D
#include "vtkActor2D.h"
#include "vtkFloatArray.h"
#include "vtkGlyph2D.h"
#include "vtkGlyphSource2D.h"
#include "vtkMinimalStandardRandomSequence.h"
#include "vtkNew.h"
#include "vtkPointData.h"
#include "vtkPoints.h"
#include "vtkPolyData.h"
#include "vtkPolyDataMapper2D.h"
#include "vtkRegressionTestImage.h"
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkTestUtilities.h"
int TestGlyphSource2DResolution(int argc, char* argv[])
{
cout << "CTEST_FULL_OUTPUT (Avoid ctest truncation of output)" << endl;
vtkNew<vtkPolyData> pd;
vtkNew<vtkPoints> pts;
vtkNew<vtkFloatArray> scalars;
vtkNew<vtkFloatArray> vectors;
vectors->SetNumberOfComponents(3);
pd->SetPoints(pts.GetPointer());
pd->GetPointData()->SetScalars(scalars.GetPointer());
pd->GetPointData()->SetVectors(vectors.GetPointer());
vtkNew<vtkMinimalStandardRandomSequence> randomSequence;
randomSequence->SetSeed(1);
int size = 400;
for (int i = 0; i < 100; ++i)
{
randomSequence->Next();
double x = randomSequence->GetValue()*size;
randomSequence->Next();
double y = randomSequence->GetValue()*size;
pts->InsertNextPoint(x,
y,
0.0);
randomSequence->Next();
scalars->InsertNextValue(5.0*randomSequence->GetValue());
randomSequence->Next();
double ihat = randomSequence->GetValue()*2-1;
randomSequence->Next();
double jhat = randomSequence->GetValue()*2-1;
vectors->InsertNextTuple3(ihat,
jhat,
0.0);
}
vtkNew<vtkGlyphSource2D> gs;
gs->SetGlyphTypeToCircle();
gs->SetScale(20);
gs->FilledOff();
gs->CrossOn();
vtkNew<vtkGlyphSource2D> gs1;
gs1->SetGlyphTypeToCircle();
gs1->SetResolution(24);
gs1->SetScale(30);
gs1->FilledOn();
gs1->CrossOff();
vtkNew<vtkGlyphSource2D> gs2;
gs2->SetGlyphTypeToCircle();
gs2->SetResolution(6);
gs2->SetScale(20);
gs2->FilledOn();
gs2->CrossOff();
vtkNew<vtkGlyphSource2D> gs3;
gs3->SetGlyphTypeToCircle();
gs3->SetResolution(5);
gs3->SetScale(30);
gs3->FilledOff();
gs3->CrossOn();
vtkNew<vtkGlyphSource2D> gs4;
gs4->SetGlyphTypeToCircle();
gs4->SetResolution(100);
gs4->SetScale(50);
gs4->FilledOff();
gs4->CrossOff();
vtkNew<vtkGlyph2D> glypher;
glypher->SetInputData(pd.GetPointer());
glypher->SetSourceConnection(0, gs->GetOutputPort());
glypher->SetSourceConnection(1, gs1->GetOutputPort());
glypher->SetSourceConnection(2, gs2->GetOutputPort());
glypher->SetSourceConnection(3, gs3->GetOutputPort());
glypher->SetSourceConnection(4, gs4->GetOutputPort());
glypher->SetIndexModeToScalar();
glypher->SetRange(0,5);
glypher->SetScaleModeToScaleByVector();
vtkNew<vtkPolyDataMapper2D> mapper;
mapper->SetInputConnection(glypher->GetOutputPort());
mapper->SetScalarRange(0, 5);
vtkNew<vtkActor2D> glyphActor;
glyphActor->SetMapper(mapper.GetPointer());
// Create the RenderWindow, Renderer
vtkNew<vtkRenderWindow> renWin;
renWin->SetMultiSamples(0);
vtkNew<vtkRenderWindowInteractor> iren;
iren->SetRenderWindow(renWin.GetPointer());
vtkNew<vtkRenderer> ren;
ren->AddActor2D(glyphActor.GetPointer());
ren->SetBackground(0.3, 0.3, 0.3);
ren->ResetCamera();
renWin->SetSize(size+1, size-1); //NPOT size
renWin->AddRenderer(ren.GetPointer());
renWin->Render();
iren->Initialize();
int retVal = vtkRegressionTestImage(renWin.GetPointer());
if (retVal == vtkRegressionTester::DO_INTERACTOR)
{
iren->Start();
}
return !retVal;
}
......@@ -16,13 +16,15 @@
#include "vtkCellArray.h"
#include "vtkCellData.h"
#include "vtkMath.h"
#include "vtkIdList.h"
#include "vtkInformation.h"
#include "vtkInformationVector.h"
#include "vtkMath.h"
#include "vtkObjectFactory.h"
#include "vtkPolyData.h"
#include "vtkUnsignedCharArray.h"
vtkStandardNewMacro(vtkGlyphSource2D);
//----------------------------------------------------------------------------
......@@ -40,6 +42,7 @@ vtkGlyphSource2D::vtkGlyphSource2D()
this->Cross = 0;
this->Dash = 0;
this->RotationAngle = 0.0;
this->Resolution = 8;
this->OutputPointsPrecision = SINGLE_PRECISION;
this->GlyphType = VTK_VERTEX_GLYPH;
......@@ -340,31 +343,35 @@ void vtkGlyphSource2D::CreateSquare(vtkPoints *pts, vtkCellArray *lines,
void vtkGlyphSource2D::CreateCircle(vtkPoints *pts, vtkCellArray *lines,
vtkCellArray *polys, vtkUnsignedCharArray *colors)
{
vtkIdType ptIds[9];
vtkIdList* ptIds = vtkIdList::New();
ptIds->SetNumberOfIds(this->Resolution + 1);
double x[3], theta;
// generate eight points in a circle
x[2] = 0.0;
theta = 2.0 * vtkMath::Pi() / 8.0;
for (int i=0; i<8; i++)
theta = 2.0 * vtkMath::Pi() / static_cast<double>(this->Resolution);
for (int i=0; i<this->Resolution; i++)
{
x[0] = 0.5 * cos(i*theta);
x[1] = 0.5 * sin(i*theta);
ptIds[i] = pts->InsertNextPoint(x);
ptIds->SetId(i, pts->InsertNextPoint(x));
}
ptIds->SetId(this->Resolution, ptIds->GetId(0));
if ( this->Filled )
{
polys->InsertNextCell(8,ptIds);
polys->InsertNextCell(ptIds);
}
else
{
ptIds[8] = ptIds[0];
lines->InsertNextCell(9,ptIds);
lines->InsertNextCell(ptIds);
}
colors->InsertNextValue(this->RGB[0]);
colors->InsertNextValue(this->RGB[1]);
colors->InsertNextValue(this->RGB[2]);
ptIds->Delete();
}
void vtkGlyphSource2D::CreateDiamond(vtkPoints *pts, vtkCellArray *lines,
......@@ -559,6 +566,7 @@ void vtkGlyphSource2D::PrintSelf(ostream& os, vtkIndent indent)
os << indent << "Scale: " << this->Scale << "\n";
os << indent << "Scale2: " << this->Scale2 << "\n";
os << indent << "Rotation Angle: " << this->RotationAngle << "\n";
os << indent << "Resolution: " << this->Resolution << "\n";
os << indent << "Color: (" << this->Color[0] << ", "
<< this->Color[1] << ", " << this->Color[2] << ")\n";
......
......@@ -44,6 +44,8 @@
#define VTK_HOOKEDARROW_GLYPH 11
#define VTK_EDGEARROW_GLYPH 12
#define VTK_MAX_CIRCLE_RESOLUTION 1024
class vtkPoints;
class vtkUnsignedCharArray;
class vtkCellArray;
......@@ -112,6 +114,11 @@ public:
vtkSetMacro(RotationAngle,double);
vtkGetMacro(RotationAngle,double);
// Description:
// Specify the number of points that form the circular glyph.
vtkSetClampMacro(Resolution,int,3,VTK_MAX_CIRCLE_RESOLUTION);
vtkGetMacro(Resolution,int);
// Description:
// Specify the type of glyph to generate.
vtkSetClampMacro(GlyphType,int,VTK_NO_GLYPH,VTK_EDGEARROW_GLYPH);
......@@ -152,6 +159,7 @@ protected:
int Cross;
int GlyphType;
double RotationAngle;
int Resolution;
int OutputPointsPrecision;
void TransformGlyph(vtkPoints *pts);
......
......@@ -9,6 +9,10 @@ set(LibSrcs ${QVTKLibSrcs}
QVTKWidget2.cxx
)
if (VTK_RENDERING_BACKEND STREQUAL "OpenGL2")
add_definitions(-DVTKGL2)
endif ()
if(VTK_QT_VERSION VERSION_GREATER "4")
find_package(Qt5 COMPONENTS OpenGL REQUIRED QUIET)
include_directories(${Qt5OpenGL_INCLUDE_DIRS})
......
......@@ -18,6 +18,10 @@
the U.S. Government retains certain rights in this software.
-------------------------------------------------------------------------*/
#ifdef VTKGL2
#include "vtk_glew.h"
#endif
#include "QVTKGraphicsItem.h"
#include <QGLFramebufferObject>
#include <QGraphicsSceneMouseEvent>
......@@ -27,7 +31,9 @@
#include "QVTKInteractorAdapter.h"
#include "vtkGenericOpenGLRenderWindow.h"
#include "vtkEventQtSlotConnect.h"
#ifndef VTKGL2
#include "vtkgl.h"
#endif
#include "vtkOpenGLError.h"
QVTKGraphicsItem::QVTKGraphicsItem(QGLContext* ctx, QGraphicsItem* p)
......@@ -77,10 +83,17 @@ void QVTKGraphicsItem::SetRenderWindow(vtkGenericOpenGLRenderWindow* win)
{
mWin->SetMapped(1);
mWin->SetDoubleBuffer(0);
#ifdef VTKGL2
mWin->SetFrontBuffer(GL_COLOR_ATTACHMENT0);
mWin->SetFrontLeftBuffer(GL_COLOR_ATTACHMENT0);
mWin->SetBackBuffer(GL_COLOR_ATTACHMENT0);
mWin->SetBackLeftBuffer(GL_COLOR_ATTACHMENT0);
#else
mWin->SetFrontBuffer(vtkgl::COLOR_ATTACHMENT0_EXT);
mWin->SetFrontLeftBuffer(vtkgl::COLOR_ATTACHMENT0_EXT);
mWin->SetBackBuffer(vtkgl::COLOR_ATTACHMENT0_EXT);
mWin->SetBackLeftBuffer(vtkgl::COLOR_ATTACHMENT0_EXT);
#endif
mConnect->Connect(mWin, vtkCommand::StartEvent, this, SLOT(Start()));
mConnect->Connect(mWin, vtkCommand::WindowMakeCurrentEvent, this, SLOT(MakeCurrent()));
......
......@@ -36,7 +36,7 @@
#endif
QVTKWidget2::QVTKWidget2(QWidget* p, const QGLWidget* shareWidget, Qt::WindowFlags f)
: QGLWidget(p, shareWidget, f), mRenWin(NULL)
: Superclass(p, shareWidget, f), mRenWin(NULL)
{
this->UseTDx=false;
mIrenAdapter = new QVTKInteractorAdapter(this);
......@@ -46,7 +46,7 @@ QVTKWidget2::QVTKWidget2(QWidget* p, const QGLWidget* shareWidget, Qt::WindowFla
}
QVTKWidget2::QVTKWidget2(QGLContext* ctx, QWidget* p, const QGLWidget* shareWidget, Qt::WindowFlags f)
: QGLWidget(ctx, p, shareWidget, f), mRenWin(NULL)
: Superclass(ctx, p, shareWidget, f), mRenWin(NULL)
{
this->UseTDx=false;
mIrenAdapter = new QVTKInteractorAdapter(this);
......@@ -56,7 +56,7 @@ QVTKWidget2::QVTKWidget2(QGLContext* ctx, QWidget* p, const QGLWidget* shareWidg
}
QVTKWidget2::QVTKWidget2(const QGLFormat& fmt, QWidget* p, const QGLWidget* shareWidget, Qt::WindowFlags f)
: QGLWidget(fmt, p, shareWidget, f), mRenWin(NULL)
: Superclass(fmt, p, shareWidget, f), mRenWin(NULL)
{
this->UseTDx=false;
mIrenAdapter = new QVTKInteractorAdapter(this);
......@@ -288,7 +288,7 @@ bool QVTKWidget2::event(QEvent* e)
}
}
}
return QObject::event(e);
return Superclass::event(e);
}
/*! handle mouse press event
......@@ -490,10 +490,10 @@ int QVTKWidget2::GetMultiSamples() const
void QVTKWidget2::setAutoBufferSwap(bool f)
{
QGLWidget::setAutoBufferSwap(f);
Superclass::setAutoBufferSwap(f);
}
bool QVTKWidget2::autoBufferSwap() const
{
return QGLWidget::autoBufferSwap();
return Superclass::autoBufferSwap();
}
......@@ -39,6 +39,7 @@ class vtkTDxDevice;
class VTKGUISUPPORTQTOPENGL_EXPORT QVTKWidget2 : public QGLWidget
{
Q_OBJECT
typedef QGLWidget Superclass;
public:
//! constructor
QVTKWidget2(QWidget* parent = NULL, const QGLWidget* shareWidget=0, Qt::WindowFlags f = 0);
......
......@@ -5,7 +5,7 @@ vtk_module(vtkGUISupportQtOpenGL
${_groups}
DEPENDS
vtkGUISupportQt
vtkRenderingOpenGL
vtkRendering${VTK_RENDERING_BACKEND}
TEST_DEPENDS
vtkTestingCore
EXCLUDE_FROM_WRAPPING
......
......@@ -458,10 +458,18 @@ vtkUniformGrid* vtkAMRBaseReader::GetAMRBlock( const int blockIdx )
//------------------------------------------------------------------------------
void vtkAMRBaseReader::LoadPointData(
const int vtkNotUsed(blockIdx), vtkUniformGrid* vtkNotUsed(block) )
const int blockIdx, vtkUniformGrid* block )
{
// TODO: implement this
//vtkErrorMacro( "Node-centered AMR data are not currently supported" );
// Sanity check!
assert( "pre: AMR block should not be NULL" && (block != NULL) );
for( int i=0; i < this->GetNumberOfPointArrays(); ++i )
{
if( this->GetPointArrayStatus( this->GetPointArrayName( i ) ) )
{
this->GetAMRPointData( blockIdx, block, this->GetPointArrayName( i ) );
}
} // END for all point arrays
}
//------------------------------------------------------------------------------
......