@Override protected final void doRender(DrawContext dc) { if (this.forceLevelZeroLoads && !this.levelZeroLoaded) this.loadAllTopLevelTextures(dc); if (dc.getSurfaceGeometry() == null || dc.getSurfaceGeometry().size() < 1) return; dc.getGeographicSurfaceTileRenderer().setShowImageTileOutlines(this.showImageTileOutlines); draw(dc); }
/** * Transforming the modelview matrix with the Rift's head rotation causes the {@link * OrbitView#focusOnViewportCenter()} method to focus on the center of the viewport, which means * the view jumps around depending on the head rotation. This method calls the focus method using * an untransformed modelview matrix, keeping the center rotation point more consistent. * * @param dc */ protected void fixViewportCenterPosition(DrawContext dc, DrawableSceneController sc) { dc.setViewportCenterPosition(null); Point vpc = dc.getViewportCenterScreenPoint(); if (vpc == null) { return; } try { disableHeadTransform = true; sc.applyView(dc); dc.enablePickingMode(); List<Point> points = Arrays.asList(new Point[] {vpc}); List<PickedObject> pickedObjects = dc.getSurfaceGeometry().pick(dc, points); if (pickedObjects == null || pickedObjects.size() == 0) { return; } dc.setViewportCenterPosition((Position) pickedObjects.get(0).getObject()); } finally { disableHeadTransform = false; sc.applyView(dc); dc.disablePickingMode(); } }
protected void draw(DrawContext dc, java.awt.Point pickPoint) { if (this.markers == null) return; if (dc.getVisibleSector() == null) return; SectorGeometryList geos = dc.getSurfaceGeometry(); if (geos == null) return; // Adds markers to the draw context's ordered renderable queue. During picking, this gets the // pick point and the // current layer from the draw context. this.getMarkerRenderer().render(dc, this.markers); }