HLRBRep_PolyHLRToShape doesn't create topological entities

Hello, I'm trying to get the shape's side view after reading it from the .step file, but the HLRBRep_PolyHLRToShape object doesn't create hidden and visible edges.

Code example:

        STEPControl_Reader reader;
	reader.ReadFile(file);
	Standard_Integer roots = reader.NbRootsForTransfer();
	Standard_Integer trans = reader.TransferRoots();
	TopoDS_Shape shape = reader.OneShape();
        gp_Pnt org(0, 0, 0);
	gp_Dir z(0, 0, 1);
	gp_Ax2 viewAxis(org , z);

	// Prepare projector.
	HLRAlgo_Projector projector(viewAxis);

	// Prepare polygonal HLR algorithm which is known to be more reliable than
	// the "curved" version of HLR.
	Handle(HLRBRep_PolyAlgo) polyAlgo = new HLRBRep_PolyAlgo;

	polyAlgo->Projector(projector);
	polyAlgo->Load(shape);
	polyAlgo->Update();

	// Create topological entities.
	HLRBRep_PolyHLRToShape HLRToShape;
	HLRToShape.Update(polyAlgo);

	// Prepare one compound shape to store HLR results.
	TopoDS_Compound hlrShape;
	BRep_Builder().MakeCompound(hlrShape);

//HLRToShape.HCompound() - always Null
//HLRToShape.OutLineHCompound() - always Null 
//HLRToShape.Rg1LineHCompound() - always Null 
//HLRToShape.RgNLineHCompound() - always Null 
//HLRToShape.VCompound().IsNull() - always Null 
//HLRToShape.OutLineVCompound().IsNull() - always Null 
//HLRToShape.Rg1LineVCompound().IsNull() - always Null 
//HLRToShape.RgNLineVCompound().IsNull() - always Null 
	

I'd appreciate all the help I can get.

Fabio Caprarella's picture

You have to triangulate the shape you load into polyAlgo. You can use BRepMesh_IncrementalMesh.
For example:
...
//- Added
BRepMesh_IncrementalMesh myTriangulator;
//-

// Prepare polygonal HLR algorithm which is known to be more reliable than
// the "curved" version of HLR.
Handle(HLRBRep_PolyAlgo) polyAlgo = new HLRBRep_PolyAlgo;

polyAlgo->Projector(projector);
//- Added
myTriangulator.SetShape(shape);
myTriangulator.Perform();
//-
polyAlgo->Load(shape);
polyAlgo->Update();