/** * Construct a GraphicsModeControlJ3D associated with the input display * * @param d display associated with this GraphicsModeControlJ3D */ public GraphicsModeControlJ3D(DisplayImpl d) { super(d); lineWidth = 1.0f; pointSize = 1.0f; lineStyle = SOLID_STYLE; pointMode = false; textureEnable = true; scaleEnable = false; // NICEST, FASTEST and BLENDED do not solve the depth precedence problem // note SCREEN_DOOR does not seem to work with variable transparency // transparencyMode = TransparencyAttributes.NICEST; transparencyMode = TransparencyAttributes.FASTEST; // transparencyMode = TransparencyAttributes.BLENDED; // transparencyMode = TransparencyAttributes.SCREEN_DOOR; polygonMode = PolygonAttributes.POLYGON_FILL; polygonOffset = Float.NaN; polygonOffsetFactor = 0f; adjustProjectionSeam = true; texture3DMode = STACK2D; projectionPolicy = View.PERSPECTIVE_PROJECTION; DisplayRendererJ3D displayRenderer = (DisplayRendererJ3D) getDisplayRenderer(); if (displayRenderer != null) { if (displayRenderer.getMode2D()) { projectionPolicy = View.PARALLEL_PROJECTION; // for some strange reason, if we set PERSPECTIVE_PROJECTION at this // point, we can never set PARALLEL_PROJECTION displayRenderer.getView().setProjectionPolicy(projectionPolicy); } } }