[vtkusers] Creating a structured grid of 250x250 cells is causing MS runtime to throw an exception
Nathan__
reeves_nathan at hotmail.com
Thu Jul 15 03:51:51 EDT 2010
I am just trying to create a basic example to ensure that VTK can handle the
number of cells I need. At 250,000 cells, the MS run time dll is throwing an
exception due to bad memory allocation. Can anyone please help as to why as
I am sure this number should easily be handled.
Here is my example:
#define DIMENSION_X 500
#define DIMENSION_Y 500
#define DIMENSION_Z 1
int main()
{
//create points of hexahedron
vtkPoints *points1 = vtkPoints::New();
for (int i=0;i<DIMENSION_X;i++)
{
for (int j=0;j<DIMENSION_Y;j++)
{
for (int k=0;k<DIMENSION_Z;k++)
{
points1->InsertNextPoint(i,j,k);
}
}
}
vtkHexahedron *theHex[DIMENSION_X*DIMENSION_Y*DIMENSION_Z];
for(int i=0;i<DIMENSION_X*DIMENSION_Y*DIMENSION_Z;i++)
{
theHex[i] = vtkHexahedron::New();
theHex[i]->GetPointIds()->SetNumberOfIds(8); //not needed if use
insertId
for (int j = 0; j <8; j++)
{
theHex[i]->GetPointIds()->SetId(j,j+(i*8)); //this maps internal id 0-7
to global point Id
// theHex[i]->GetPointIds()->InsertId(j,j+(i*8));
}
}
vtkStructuredGrid *myStructuredGrid1 = vtkStructuredGrid::New();
myStructuredGrid1->SetDimensions(DIMENSION_X,DIMENSION_Y,DIMENSION_Z);
myStructuredGrid1->SetPoints(points1);
//create a mapper for the hexahedron
vtkDataSetMapper *theHexMapper1;
theHexMapper1 = vtkDataSetMapper::New();
theHexMapper1->SetInput(myStructuredGrid1);
//create an actor
vtkActor * hexActor1;//[NUMBER_OF_SHAPES];
hexActor1 = vtkActor::New();
hexActor1->SetMapper(theHexMapper1);
// a renderer and render window
vtkRenderer *ren1 = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(ren1);
ren1->AddActor(hexActor1);
// an interactor
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
ren1->SetBackground(1,1,1); // Background color white
// render an image (lights and cameras are created automatically)
renWin->Render();
iren->Initialize();
iren->Start();
return 1;
}
Here is my stack trace:
KernelBase.dll!767eb727()
[Frames below may be incorrect and/or missing, no symbols loaded for
KernelBase.dll]
KernelBase.dll!767eb727()
ntdll.dll!77750e7b()
> msvcr80d.dll!_unlock(int locknum=8) Line 376 C
msvcr80d.dll!_unlockexit() Line 760 + 0x7 bytes C
msvcr80d.dll!_CxxThrowException(void * pExceptionObject=0x3c6cbb50, const
_s__ThrowInfo * pThrowInfo=0x6c6d3340) Line 161 C++
msvcr80d.dll!operator new(unsigned int size=128) Line 64 C++
vtkUtilities.exe!vtkOStrStreamWrapper::vtkOStrStreamWrapper() Line 48 +
0x44 bytes C++
vtkUtilities.exe!vtkDataArrayTemplate<double>::Allocate(int sz=6, int
__formal=1000) Line 140 + 0x21 bytes C++
vtkUtilities.exe!vtkDataArrayTemplate<double>::SetNumberOfValues(int
number=6) Line 849 + 0x18 bytes C++
vtkUtilities.exe!vtkDataArrayTemplate<double>::SetNumberOfTuples(int
number=2) Line 406 C++
vtkUtilities.exe!vtkPoints::SetNumberOfPoints(int number=2) Line 187 +
0x19 bytes C++
vtkUtilities.exe!vtkLine::vtkLine() Line 33 C++
vtkUtilities.exe!vtkLine::New() Line 26 + 0x73 bytes C++
vtkUtilities.exe!vtkHexahedron::vtkHexahedron() Line 44 + 0x5 bytes C++
vtkUtilities.exe!vtkHexahedron::New() Line 28 + 0x73 bytes C++
vtkUtilities.exe!main() Line 431 + 0x5 bytes C++
vtkUtilities.exe!__tmainCRTStartup() Line 597 + 0x19 bytes C
vtkUtilities.exe!mainCRTStartup() Line 414 C
kernel32.dll!77223677()
ntdll.dll!77749d42()
ntdll.dll!77749d15()
--
View this message in context: http://old.nabble.com/Creating-a-structured-grid-of-250x250-cells-is-causing-MS-runtime-to-throw-an-exception-tp29170212p29170212.html
Sent from the VTK - Users mailing list archive at Nabble.com.
More information about the vtkusers
mailing list