[vtkusers] Problem with VTK4.4 + BCB6 + WinXP Pro
Xianjin Yang
Yang at AGIUSA.COM
Mon Mar 29 15:11:07 EST 2004
Hi Dean,
After playing around with Compiler and Linker settings, I fixed the problem
by setting "Data Alignment" to "Quad Word" on the BCB6 Advanced Compiler
settings.
Regards.
Yang
-----Original Message-----
From: Xianjin Yang [mailto:Yang at AGIUSA.COM]
Sent: Monday, March 29, 2004 12:58 PM
To: vtkusers archive
Cc: 'Dean Inglis'
Subject: [vtkusers] Problem with VTK4.4 + BCB6 + WinXP Pro
Hi Dean,
To demo the problem with VTK4.4 + BCB6, I created a small demo out of
VTK\Examples\GUI\Win32\vtkBorland\ProjectDemo\Project_vtkDemo and
/VTK/Examples/DataManipulation/Cxx/Arrays.cxx. I simply replaced the the
button event handler with Arrays.cxx.
When my demo program calls vtkCellArray->InsertNextCell(4), I got an Excess
Violation. BCB error message says
"Access violation at the address 0040263F in module Project_vtkDemo.exe.
Write of address 00000000." The BCB debugger pointed to the error code in
VTK below:
inline void vtkIdTypeArray::InsertValue(vtkIdType id, vtkIdType i)
{
if ( id >= this->Size )
{
this->ResizeAndExtend(id+1);
}
this->Array[id] = i; <------------ Error code inside VTK
if ( id > this->MaxId )
{
this->MaxId = id;
}
}
FYI, I had no problem to run the TCL version of the same code
/VTK/Examples/DataManipulation/TCL/Arrays.tcl under VTK4.4.
Thank you for your time.
Yang
----------- My Demo Code Below -----------
void __fastcall TVTK_Form::bc1Click(TObject *Sender)
{
vtkFloatArray* pcoords = vtkFloatArray::New();
pcoords->SetNumberOfComponents(3);
pcoords->SetNumberOfTuples(4);
float pts[4][3] = { {0.0, 0.0, 0.0}, {0.0, 1.0, 0.0},
{1.0, 0.0, 0.0}, {1.0, 1.0, 0.0} };
for (int i=0; i<4; i++) pcoords->SetTuple(i, pts[i]);
vtkPoints* points = vtkPoints::New();
points->SetData(pcoords);
vtkCellArray* strips = vtkCellArray::New();
strips->InsertNextCell(4); <------------------ Caused Access Violation
strips->InsertCellPoint(0);
strips->InsertCellPoint(1);
strips->InsertCellPoint(2);
strips->InsertCellPoint(3);
vtkIntArray* temperature = vtkIntArray::New();
temperature->SetName("Temperature");
temperature->InsertNextValue(10);
temperature->InsertNextValue(20);
temperature->InsertNextValue(30);
temperature->InsertNextValue(40);
vtkDoubleArray* vorticity = vtkDoubleArray::New();
vorticity->SetName("Vorticity");
vorticity->InsertNextValue(2.7);
vorticity->InsertNextValue(4.1);
vorticity->InsertNextValue(5.3);
vorticity->InsertNextValue(3.4);
vtkPolyData* polydata = vtkPolyData::New();
polydata->SetPoints(points);
polydata->SetStrips(strips);
polydata->GetPointData()->SetScalars(temperature);
polydata->GetPointData()->AddArray(vorticity);
vtkPolyDataMapper* mapper = vtkPolyDataMapper::New();
mapper->SetInput(polydata);
mapper->SetScalarRange(0, 40);
vtkActor* actor = vtkActor::New();
actor->SetMapper(mapper);
vtkWindow1->GetRenderer()->AddActor(actor);
pcoords->Delete();
points->Delete();
strips->Delete();
temperature->Delete();
vorticity->Delete();
polydata->Delete();
mapper->Delete();
actor->Delete();
vtkWindow1->GetRenderer()->ResetCamera();
vtkWindow1->Invalidate();
}
-----Original Message-----
From: Dean Inglis [mailto:dean.inglis at camris.ca]
Sent: Monday, March 29, 2004 10:56 AM
To: vtkusers archive
Cc: Yang at AGIUSA.COM
Subject: Re: [vtkusers] Display model coordinate with vtkImagePlaneWidget
Hi Yang,
>continuous cursoring is found in vtk4.4 and up, but I could not make my
BCB6
>project to work with vtk4.4. I am still using vtk4.2. This may be
>another sign to abandon BCB.
that's odd. I have about 6 different active projects that successfully
compile and run error free both on BCB5 and BCB6 with latest cvs VTK release
(Intel Pentium 4 processors, Windows 2000 OS). What specific problems are
you having?
Dean
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20040329/9cb0844f/attachment.htm>
More information about the vtkusers
mailing list