[vtkusers] Actors in front of camera clipped despite ResetCameraClippingRange()

Elvis Stansvik elvis.stansvik at orexplore.com
Tue Jun 21 07:35:26 EDT 2016

2016-06-21 13:20 GMT+02:00 Elvis Stansvik <elvis.stansvik at orexplore.com>:

> I'm attaching the full code for brevity, but the relevant parts are how
> I'm treating the camera in my CylindricalInteractionStyle class and the if
> __name__ == '__main__' block.

To clarify: To see the problem, run the program and use Shift+mouse drag to
move the camera up or down. If you go far enough the cones start to get
clipped at the near plane.


> Elvis
> 2016-06-21 13:06 GMT+02:00 Elvis Stansvik <elvis.stansvik at orexplore.com>:
>> Hi all,
>> I have a setup where the camera always moves on a cylinder of radius 3.0
>> around my subject (just testing with a stack of cones at the moment). The
>> focal point is always positioned along the Y axis, and the camera may be
>> moved up and down independent of the focus point, but the camera is always
>> at a distance of 3 from the Y axis.
>> As soon as the user moves the camera, I reset the camera clipping range
>> with ResetCameraClippingRange(). Despite this, when the camera and the
>> focal point are far away from eachother, the actors (my stack of cones) get
>> clipped by the near plane for some reason.
>> See the attached screenshot which shows the clipping.
>> What I'm doing to my camera (in response to Shift+mouse drag in my custom
>> interactor) to end up in this situation is just:
>>         camera = renderer.GetActiveCamera()
>>         (x, y, z) = camera.GetPosition()
>>         camera.SetPosition(x, y - self.PanningFactor * dy, z)
>>         renderer.ResetCameraClippingRange()
>> and I've verified that the camera is always at a distance of 3.0 from the
>> Y axis.
>> The cones I'm using in this test were created with:
>>     for i in range(-10, 20):
>>         coneSource = vtkConeSource()
>>         coneSource.SetDirection(0, 1, 0)
>>         coneSource.SetResolution(8)
>>         coneSource.SetCenter(0, i, 0)
>>         coneMapper = vtkPolyDataMapper()
>>         coneMapper.SetInputConnection(coneSource.GetOutputPort())
>>         coneActor = vtkActor()
>>         coneActor.SetMapper(coneMapper)
>>         widget.renderer.AddActor(coneActor)
>> I don't understand why I see clipping occur here, since I'm using
>> ResetCameraClippingRange, and nothing is behind the camera. The radius of
>> these cones is the default (0.5).
>> It's probably something stupid, but any advice is much appreciated.
>> Elvis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160621/a4939f18/attachment.html>

More information about the vtkusers mailing list