+ if ( theViewer3d.IsNull() /*|| theLayerId < 0*/ )
+ {
+ return;
+ }
+
+ Graphic3d_ZLayerSettings aSettings = theViewer3d->ZLayerSettings( theLayerId );
+ // enable depth write
+ aSettings.EnableSetting( Graphic3d_ZLayerDepthWrite );
+ // disable depth clear
+ aSettings.DisableSetting( Graphic3d_ZLayerDepthClear );
+ if ( theIsOrdered ) {
+ // disable depth test
+ aSettings.DisableSetting( Graphic3d_ZLayerDepthTest );
+ // disable depth offset
+ aSettings.DisableSetting( Graphic3d_ZLayerDepthOffset );
+ } else {
+ // enable depth test
+ aSettings.EnableSetting( Graphic3d_ZLayerDepthTest );
+ // set depth offset
+ aSettings.SetDepthOffsetPositive();
+ }
+
+ // set new settings
+ theViewer3d->SetZLayerSettings( theLayerId, aSettings );