1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-09-03 14:10:33 +03:00

Update MeshVS_PrsBuilder & MeshVS_MeshPrsBuilder.

This commit is contained in:
isk
2016-09-01 16:29:18 +03:00
parent e5593d7d75
commit 409cc6f981
2 changed files with 40 additions and 6 deletions

View File

@@ -158,10 +158,17 @@ void MeshVS_MeshPrsBuilder::BuildNodes ( const Handle(Prs3d_Presentation)& Prs,
if ( k>0 ) if ( k>0 )
{ {
Prs3d_Root::NewGroup ( Prs ); if (myIsCreateGroup)
Handle (Graphic3d_Group) aNodeGroup = Prs3d_Root::CurrentGroup ( Prs ); {
aNodeGroup->SetPrimitivesAspect ( aNodeMark ); Prs3d_Root::NewGroup(Prs);
aNodeGroup->AddPrimitiveArray (aNodePoints); Handle(Graphic3d_Group) aNodeGroup = Prs3d_Root::CurrentGroup(Prs);
aNodeGroup->SetPrimitivesAspect(aNodeMark);
aNodeGroup->AddPrimitiveArray(aNodePoints);
}
else
{
myArrayOfPrimitives = aNodePoints;
}
} }
} }
@@ -506,8 +513,22 @@ void MeshVS_MeshPrsBuilder::BuildElements( const Handle(Prs3d_Presentation)& Prs
// << "Face segs: " << aEdgeSegments->ItemNumber() << " from " << aNbEdgePrimitives << std::endl // << "Face segs: " << aEdgeSegments->ItemNumber() << " from " << aNbEdgePrimitives << std::endl
// << "Link segs: " << aLinkSegments->ItemNumber() << " from " << aNbLinkPrimitives << std::endl; // << "Link segs: " << aLinkSegments->ItemNumber() << " from " << aNbLinkPrimitives << std::endl;
DrawArrays ( Prs, aFaceTriangles, aEdgeSegments, aLinkSegments, aVolmTriangles, if (myIsCreateGroup)
!showEdges, HasSelectFlag, aFill, aBeam ); {
DrawArrays ( Prs, aFaceTriangles, aEdgeSegments, aLinkSegments, aVolmTriangles,
!showEdges, HasSelectFlag, aFill, aBeam );
}
else
{
if (!aFaceTriangles.IsNull())
{
myArrayOfPrimitives = aFaceTriangles;
}
else if (!aEdgeSegments.IsNull())
{
myArrayOfPrimitives = aEdgeSegments;
}
}
if ( !aCustomElements.IsEmpty() ) if ( !aCustomElements.IsEmpty() )
CustomBuild ( Prs, aCustomElements, IDsToExclude, DisplayMode ); CustomBuild ( Prs, aCustomElements, IDsToExclude, DisplayMode );

View File

@@ -106,6 +106,16 @@ public:
void SetIsCreateGroup(const Standard_Boolean theIsCreate)
{
myIsCreateGroup = theIsCreate;
}
const Handle(Graphic3d_ArrayOfPrimitives)& ArrayOfPrimitives() const
{
return myArrayOfPrimitives;
}
DEFINE_STANDARD_RTTIEXT(MeshVS_PrsBuilder,MMgt_TShared) DEFINE_STANDARD_RTTIEXT(MeshVS_PrsBuilder,MMgt_TShared)
@@ -142,6 +152,9 @@ private:
Standard_Integer myPriority; Standard_Integer myPriority;
Handle(PrsMgr_PresentationManager3d) myPrsMgr; Handle(PrsMgr_PresentationManager3d) myPrsMgr;
protected:
mutable Handle(Graphic3d_ArrayOfPrimitives) myArrayOfPrimitives;
Standard_Boolean myIsCreateGroup;
}; };