<div dir="ltr">Hi,<div><br></div><div>Short story: When should BuildRepresentation() be called ?</div><div><br></div><div>Long story: </div><div>I was facing a rendering issue with vtkOrientedPolygonalHandleRepresentation3D. The handle was not being rendered until I moved the camera to a special orientation.</div>

<div>The issue was that the widget representation actor was being culled by the renderer which prevented any rendering from happening. And only a rendering (e.g. RenderOpaqueGeometry()) could update the actor position via BuildRepresentation().</div>

<div><br></div><div>Browsing through the code, it seems that it is being called at different places:<br></div><div><div> a) when a display property is being called (e.g. vtkSplineRepresentation::SetClosed)</div><div> b) when bounds are being called (e.g. vtkLineRepresentation::GetBounds())</div>

<div> c) after widgetInteraction is called (e.g. vtkBorderRepresentation::WidgetInteraction()</div><div> d) when rendering is being called (e.g. vtkProp3DButtonRepresentation::</div><div>RenderOpaqueGeometry())</div><div>

 e) By the widget (e.g. vtkSliderWidget::AnimateSlider(), vtkAngleWidget::MoveAction()). It seems to be at the same time than c)  </div></div><div>Did I miss something ?</div><div><br></div><div>Here are critics against each solution:</div>

<div>a) seems a bit against the idea that BuildRepresentation() compresses all the Modified() events and creates/refresh the representation when all the changes are done.</div><div>b) Do we know for sure GetBounds() is being called by the renderer before displaying any vtkProp ?</div>

<div>c) What if the representation has no interaction ? (processing of events being OFF)</div><div>d) As explained in my long story, it is too late to refresh the representation. (Rendering may never be called if the representation is not built')</div>

<div>e) Same as d)</div><div>Do you disagree with my critics ? Did I forget anything obvious ?</div><div><br></div><div>It seems that b) (in GetBounds()) is the only valid location. Would you agree ?</div><div><br></div>
<div>
Thanks for those who read through my long email :-)</div><div>Julien.</div><div><br></div></div>