/* * JaamSim Discrete Event Simulation * Copyright (C) 2012 Ausenco Engineering Canada Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.jaamsim.render; import com.jaamsim.math.Ray; /** * OverlayRenderable is for renderable objects that render to a screen space overlay * instead of 3D space. This is for UI, HUDs, etc. * @author Matt.Chudleigh * */ public interface OverlayRenderable { /** * Render in screen space * @param vaoMap * @param renderer * @param windowWidth - the width of the current window * @param windowHeight - the height of the current window * @param cam - the camera object for the current view * @param pickRay - the ray representing the current mouse projected into the 3D scene, may be null */ public void render(int contextID, Renderer renderer, double windowWidth, double windowHeight, Camera cam, Ray pickRay); /** * Returns if this renderable should be rendered for the listed window, most implementations will hard code this to true * @param windowID - the ID of the window be queried about * @return - a boolean indicating this renderable is visible on that window */ public boolean renderForView(int windowID, Camera cam); }