[vtkusers] Clipping Planes
James Robinson
j.robinson at kepler-systems.com
Wed Aug 11 07:40:14 EDT 2004
John,
Many thanks for replying. I have tried EVERYTHING. I have even tried
reloading all the props into the renderer. I have checked the altered bounds
on everything from the vtkUnstructuredGrid to the vtkPoints* pNodalGeometry.
None of the bounds are altered after the change (which, I would imagine, is
why the resetting of the clip planes has no effect). My workaround is:
void CSampleView::ResetCameraClippingRange(BOOL ShowDisplacement)
{
// float bounds[6] ;
// Renderer->ComputeVisiblePropBounds(bounds) ;
// Renderer->ResetCameraClippingRange() ;
// TODO: add construction code here
vtkInteractorStyleSwitch* pStyle =
(vtkInteractorStyleSwitch*)Interactor->GetInteractorStyle() ;
if (ShowDisplacement)
{
pStyle->AutoAdjustCameraClippingRangeOff() ;
vtkCamera* pCamera = Renderer->GetActiveCamera() ;
pCamera->SetClippingRange(0.001, 1000.) ; //
Arbitrary - this could be automated
} else
{
pStyle->AutoAdjustCameraClippingRangeOn() ;
}
}
which I call every time the displacement view option is chosen. Note that it
was at this level that I tried to ResetCameraClippingRange (both with bounds
computed and not), but to no avail.
Any other suggestions welcomed.
Regards,
Jim
James C Robinson, PhD, Chartered Engineer,
* 42 Rivergrove,
Glanmire,
Co. Cork,
Eire
' +353 21 4822028
+353 87 2393010
6 +353 21 4822028
* j.robinson at kepler-systems.com
_____
From: John Biddiscombe [mailto:jbiddiscombe at skippingmouse.co.uk]
Sent: 11 August 2004 12:20
To: j.robinson at kepler-systems.com; Vtk Users
Subject: Re: [vtkusers] Clipping Planes
After calling AddDisplacement(...) you are calling resetCameralippingRage()
yes? If not. try it.
JB
----- Original Message -----
From: James Robinson <mailto:j.robinson at kepler-systems.com>
To: Vtk Users <mailto:vtkusers at vtk.org>
Sent: Wednesday, August 11, 2004 11:24 AM
Subject: [vtkusers] Clipping Planes
Dear All,
I am having trouble (again) with clipping planes. I am trying to create a
viewer to view results of an FE analysis. Part of the results are the
displacements at the nodes of the finite element mesh. I read in the FE mesh
into a vtkUnstructuredGrid with the displacements as a vector field. I then
create a displaced geometry by adding them to the vtkUnstructuredGrid
geometry as follows:
void CSampleDoc::AddDisplacement(float factor)
{ vtkFloatArray *pDisplacement =
(vtkFloatArray*)this->pUnstructuredGrid->GetPointData()->GetVectors() ;
vtkPoints* pNodalGeometry = this->pUnstructuredGrid->GetPoints()
;
if (pDisplacement==NULL)
{ AfxMessageBox("No displacement set") ;
return ;
}
float newcoords[3] ;
float* x ;
float* delta ;
for (int i = 0; i < pNodalGeometry->GetNumberOfPoints(); i++)
{
x = pNodalGeometry->GetPoint(i) ;
delta = pDisplacement->GetTuple(i) ;
for (int j = 0; j < 3; j++)
{ newcoords[j] = x[j] + factor*delta[j] ;
}
pNodalGeometry->SetPoint(i,newcoords) ;
}
this->pUnstructuredGrid->Update() ;
this->pGeometry->SetInput(pUnstructuredGrid) ;
this->pMeshMapper->SetInput(pGeometry->GetOutput());
this->pMeshMapper->Update() ;
this->pMeshActor->SetMapper(this->pMeshMapper) ;
}
This works (with some other quirky behaviour which I have circumvented). But
a problem that I am having difficulty with is that the clipping planes
remain as if the geometry hadn't been altered. Thus, as I rotate the object
(in trackball camera mode) the displaced object disappears. I have checked
the bounds of the viewable objects (using
Renderer->ComputeVisiblePropBounds(bounds) ;) and they are unaltered - thus
all the AutoClipping is thrown out of whack. It may very well be that (a) I
am doing things that are not meant to be catered for in vtk or (b) there is
a better (preferably simpler) way of achieving this effect.
All suggestions gratefully welcomed.
Jim
James C Robinson, PhD, Chartered Engineer,
* 42 Rivergrove,
Glanmire,
Co. Cork,
Eire
' +353 21 4822028
+353 87 2393010
6 +353 21 4822028
* j.robinson at kepler-systems.com
_____
_______________________________________________
This is the private VTK discussion list.
Please keep messages on-topic. Check the FAQ at:
<http://public.kitware.com/cgi-bin/vtkfaq>
Follow this link to subscribe/unsubscribe:
http://www.vtk.org/mailman/listinfo/vtkusers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20040811/5dccb198/attachment.htm>
More information about the vtkusers
mailing list