Fri, 05/10/2013 - 20:11
Hello,
I need to improve the drawing quality of AIS_Circle entities.
I have found the MyContext->SetDeviationCoefficient() method to do this, but in AIS_Circle that coefficient is forced to 1.e-5.
See the code below from AIS_circle.cxx
//=======================================================================
//function : ComputeCircle
//purpose :
//=======================================================================
void AIS_Circle::ComputeCircle( const Handle(Prs3d_Presentation)& aPresentation)
{
GeomAdaptor_Curve curv(myComponent);
Standard_Real prevdev = myDrawer->DeviationCoefficient();
myDrawer->SetDeviationCoefficient(1.e-5);
StdPrs_DeflectionCurve::Add(aPresentation,curv,myDrawer);
myDrawer->SetDeviationCoefficient(prevdev);
}
I see that this coefficient is shared between circle,arc,curve and surface.
With smaller values the rendering of surface slows down very much , but the circle works well.
I have temporarily modified the AIS_Circle code to use a new value from my application to set the coefficient, but I think it would be better to have an new standard method to do this.
Can I hope that a couple of methods will be inserted to manage separately the value for Cirlce/Arcs and curve/Surface ?
Mon, 05/13/2013 - 00:53
Dear Marco,
Yes, you are right forcing the fixed deviation coefficient value (1e-5) in AIS_Circle methods looks strange and it makes sense to correct this by simply using the deviation coefficient provided by the application through the AIS_Drawer instance.
However, it doesn't seem to be of much use to introduce any extra API methods to set the deviation coefficient, as AIS_Drawer suits pretty well for this.
Regards