- if ( aPrs.IsNull() || myImage.IsNull() )
- return;
-
- aPrs->Clear();
- Handle(Graphic3d_Group) aGroup = Prs3d_Root::CurrentGroup( aPrs );
-
- if( theMode==0 )
- {
- }
- else
- {
- Graphic3d_MaterialAspect aMat( Graphic3d_NOM_PLASTIC );
- aMat.SetTransparency( 0.5 );
- Handle(Graphic3d_AspectFillArea3d) aFillAspect =
- new Graphic3d_AspectFillArea3d( Aspect_IS_SOLID, Quantity_NOC_WHITE, Quantity_NOC_BLACK, Aspect_TOL_SOLID, 1.0, aMat, aMat );
-
- Handle(Graphic3d_TextureMap) aTex = new Graphic3d_Texture2Dmanual( myImage );
- aFillAspect->SetTextureMapOn();
- aFillAspect->SetTextureMap( aTex );
-
- Handle(Graphic3d_ArrayOfTriangles) aTriangles = new Graphic3d_ArrayOfTriangles( 6, 0, Standard_False, Standard_False, Standard_True );
-
- aTriangles->AddVertex( convert( myContour[0] ), gp_Pnt2d( 0, myImage->IsTopDown() ? 0 : 1 ) );
- aTriangles->AddVertex( convert( myContour[1] ), gp_Pnt2d( 1, myImage->IsTopDown() ? 0 : 1 ) );
- aTriangles->AddVertex( convert( myContour[2] ), gp_Pnt2d( 1, myImage->IsTopDown() ? 1 : 0 ) );
-
- aTriangles->AddVertex( convert( myContour[2] ), gp_Pnt2d( 1, myImage->IsTopDown() ? 1 : 0 ) );
- aTriangles->AddVertex( convert( myContour[3] ), gp_Pnt2d( 0, myImage->IsTopDown() ? 1 : 0 ) );
- aTriangles->AddVertex( convert( myContour[0] ), gp_Pnt2d( 0, myImage->IsTopDown() ? 0 : 1 ) );
-
- aGroup->SetGroupPrimitivesAspect( aFillAspect );
- aGroup->AddPrimitiveArray( aTriangles );
- }
+ aPrs->Clear();
+ Handle(Graphic3d_Group) aGroup = Prs3d_Root::CurrentGroup( aPrs );
+
+ if ( aMode == 0 )
+ {
+ Handle(Graphic3d_ArrayOfPolylines) aSegments = new Graphic3d_ArrayOfPolylines( 5 );
+ aSegments->AddVertex( convert( myContour[0] ) );
+ aSegments->AddVertex( convert( myContour[1] ) );
+ aSegments->AddVertex( convert( myContour[2] ) );
+ aSegments->AddVertex( convert( myContour[3] ) );
+ aSegments->AddVertex( convert( myContour[0] ) );
+
+ aGroup->AddPrimitiveArray( aSegments );
+ }
+ else
+ {
+ Graphic3d_MaterialAspect aMat( Graphic3d_NOM_PLASTIC );
+ Handle(Graphic3d_AspectFillArea3d) aFillAspect =
+ new Graphic3d_AspectFillArea3d( Aspect_IS_SOLID, Quantity_NOC_WHITE, Quantity_NOC_BLACK, Aspect_TOL_SOLID, 1.0, aMat, aMat );
+
+ Handle(Graphic3d_TextureMap) aTex = new Graphic3d_Texture2Dmanual( myImage );
+ aTex->DisableModulate();
+ aFillAspect->SetTextureMapOn();
+ aFillAspect->SetTextureMap( aTex );
+
+ aGroup->SetGroupPrimitivesAspect( aFillAspect );
+
+ Handle(Graphic3d_ArrayOfTriangles) aTriangles = new Graphic3d_ArrayOfTriangles( 6, 0, Standard_False, Standard_False, Standard_True );
+
+ aTriangles->AddVertex( convert( myContour[0] ), gp_Pnt2d( 0, myImage->IsTopDown() ? 0 : 1 ) );
+ aTriangles->AddVertex( convert( myContour[1] ), gp_Pnt2d( 1, myImage->IsTopDown() ? 0 : 1 ) );
+ aTriangles->AddVertex( convert( myContour[2] ), gp_Pnt2d( 1, myImage->IsTopDown() ? 1 : 0 ) );
+
+ aTriangles->AddVertex( convert( myContour[2] ), gp_Pnt2d( 1, myImage->IsTopDown() ? 1 : 0 ) );
+ aTriangles->AddVertex( convert( myContour[3] ), gp_Pnt2d( 0, myImage->IsTopDown() ? 1 : 0 ) );
+ aTriangles->AddVertex( convert( myContour[0] ), gp_Pnt2d( 0, myImage->IsTopDown() ? 0 : 1 ) );
+
+ aGroup->AddPrimitiveArray( aTriangles );
+ }