@@ -850,8 +850,10 @@ class TGraph2DPainter extends ObjectPainter {
850850 res . Triangles = 11 ; // wireframe and colors
851851 else if ( d . check ( 'TRI2' ) )
852852 res . Triangles = 10 ; // only color triangles
853- else if ( d . check ( 'TRIW' ) || d . check ( 'TRI' ) )
853+ else if ( d . check ( 'TRIW' ) )
854854 res . Triangles = 1 ;
855+ else if ( d . check ( 'TRI' ) )
856+ res . Triangles = 2 ;
855857 else
856858 res . Triangles = 0 ;
857859 res . Line = d . check ( 'LINE' ) ;
@@ -991,8 +993,9 @@ class TGraph2DPainter extends ObjectPainter {
991993 if ( ! dulaunay . fNdt ) return ;
992994
993995 const main_grz = ! fp . logz ? fp . grz : value => ( value < fp . scale_zmin ) ? - 0.1 : fp . grz ( value ) ,
994- do_faces = this . options . Triangles >= 10 ,
995- do_lines = this . options . Triangles % 10 === 1 ,
996+ plain_mode = this . options . Triangles === 2 ,
997+ do_faces = ( this . options . Triangles >= 10 ) || plain_mode ,
998+ do_lines = ( this . options . Triangles % 10 === 1 ) || ( plain_mode && ( graph . fLineColor !== graph . fFillColor ) ) ,
996999 triangles = new Triangles3DHandler ( levels , main_grz , 0 , 2 * fp . size_z3d , do_lines ) ;
9971000
9981001 for ( triangles . loop = 0 ; triangles . loop < 2 ; ++ triangles . loop ) {
@@ -1026,8 +1029,8 @@ class TGraph2DPainter extends ObjectPainter {
10261029
10271030 triangles . callFuncs ( ( lvl , pos ) => {
10281031 const geometry = createLegoGeom ( this . getMainPainter ( ) , pos , null , 100 , 100 ) ,
1029- color = palette . calcColor ( lvl , levels . length ) ,
1030- material = new MeshBasicMaterial ( getMaterialArgs ( color , { side : DoubleSide , vertexColors : false } ) ) ,
1032+ color = plain_mode ? this . getColor ( graph . fFillColor ) : palette . calcColor ( lvl , levels . length ) ,
1033+ material = new MeshBasicMaterial ( getMaterialArgs ( color , { side : DoubleSide , vertexColors : false } ) ) ,
10311034
10321035 mesh = new Mesh ( geometry , material ) ;
10331036
@@ -1087,7 +1090,7 @@ class TGraph2DPainter extends ObjectPainter {
10871090
10881091 if ( fp . usesvg ) scale *= 0.3 ;
10891092
1090- if ( this . options . Color || this . options . Triangles ) {
1093+ if ( this . options . Color || ( this . options . Triangles >= 10 ) ) {
10911094 levels = main . getContourLevels ( true ) ;
10921095 palette = main . getHistPalette ( ) ;
10931096 }
0 commit comments