001/** 002 * Copyright (c) 2008-2014 Ardor Labs, Inc. 003 * 004 * This file is part of Ardor3D. 005 * 006 * Ardor3D is free software: you can redistribute it and/or modify it 007 * under the terms of its license which may be found in the accompanying 008 * LICENSE file or at <http://www.ardor3d.com/LICENSE>. 009 */ 010 011package com.ardor3d.renderer.queue; 012 013import java.util.Comparator; 014 015import com.ardor3d.renderer.Renderer; 016import com.ardor3d.scenegraph.Spatial; 017 018public class OrthoRenderBucket extends AbstractRenderBucket { 019 020 public OrthoRenderBucket() { 021 super(); 022 023 _comparator = new OrthoComparator(); 024 } 025 026 @Override 027 public void render(final Renderer renderer) { 028 if (_currentListSize > 0) { 029 try { 030 renderer.setOrtho(); 031 for (int i = 0; i < _currentListSize; i++) { 032 _currentList[i].draw(renderer); 033 } 034 } finally { 035 renderer.unsetOrtho(); 036 } 037 } 038 } 039 040 private static class OrthoComparator implements Comparator<Spatial> { 041 @Override 042 public int compare(final Spatial o1, final Spatial o2) { 043 if (o2.getSceneHints().getOrthoOrder() == o1.getSceneHints().getOrthoOrder()) { 044 return 0; 045 } else if (o2.getSceneHints().getOrthoOrder() < o1.getSceneHints().getOrthoOrder()) { 046 return -1; 047 } else { 048 return 1; 049 } 050 } 051 } 052}