I'm trying to compute the silhouette of an object. I want *only* the outline. However, OutlineVCompound only contains part of the outline. I have to use VCompound for the rest, and that contains edges which aren't part of the outline. From the docs, it sounds like OutlineVCompound should contain everything I need, but it doesn't. So, how do I figure out which of the edges in OutlineVCompound and VCompound are the outline, and which ones aren't?
The shapes I've tried are a cylinder, and a cylinder with a half-sphere on one end (i.e. a ballnose endmill). For the cylinder, OutlineVCompound contains a single edge when displayed. For the ballnose, it contains a 'J' shape - the outline of the half-sphere and of one side of the cylinder.
Here's the code I'm using:
TopoDS_Shape t = ...
gp_Trsf pTrsf = ...
Handle(HLRBRep_Algo) myAlgo = new HLRBRep_Algo();
myAlgo->Projector(HLRAlgo_Projector (pTrsf,false,0)); //instead of Prs3d_Projector
myAlgo->Hide(); //from modalg.pdf
TopoDS_Shape o = aHLRToShape.OutlineVCompound();
TopoDS_Shape v = aHLRToShape.VCompound();