NDEVR
API Documentation
CameraBackground.h
1/*--------------------------------------------------------------------------------------------
2Copyright (c) 2019, NDEVR LLC
3tyler.parke@ndevr.org
4 __ __ ____ _____ __ __ _______
5 | \ | | | __ \ | ___|\ \ / / | __ \
6 | \ | | | | \ \ | |___ \ \ / / | |__) |
7 | . \| | | |__/ / | |___ \ V / | _ /
8 | |\ |_|_____/__|_____|___\_/____| | \ \
9 |__| \__________________________________| \__\
10
11Subject to the terms of the Enterprise+ Agreement, NDEVR hereby grants
12Licensee a limited, non-exclusive, non-transferable, royalty-free license
13(without the right to sublicense) to use the API solely for the purpose of
14Licensee's internal development efforts to develop applications for which
15the API was provided.
16
17The above copyright notice and this permission notice shall be included in all
18copies or substantial portions of the Software.
19
20THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
21INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
22PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
23FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25DEALINGS IN THE SOFTWARE.
26
27Library: Design
28File: CameraBackground
29Included in API: True
30Author(s): Tyler Parke
31 *-----------------------------------------------------------------------------------------**/
32#pragma once
33#include "DLLInfo.h"
34#if NDEVR_VIEWPORT
35#include <NDEVR/Resource.h>
36#include <NDEVR/RGBColor.h>
37#include <NDEVR/Matrix.h>
38namespace NDEVR
39{
40 class Skybox;
41
97}
98#endif
99
100
void setSkybox(Skybox *skybox)
Sets the skybox to use for the background environment rendering.
Skybox * skybox()
Returns the currently assigned skybox.
bool m_current_show_grid
Cached state of whether the grid is currently shown.
RGBColor background_color
The solid background color used when no skybox is active.
fltp08 ortho_ratio
The ratio used for orthographic projection scaling.
RGBColor m_current_background_color
Cached current background color for change detection.
bool show_environment
Whether to render the environment (skybox or ambient background).
void update(const void *lock_ptr=nullptr)
Updates the background rendering state, applying any pending changes.
CameraBackground()
Constructs a CameraBackground with default values.
fltp08 m_current_grid_size
Cached current grid size for change detection.
Vector< 3, fltp04 > sun_location
The 3D position of the sun light source in the scene.
Matrix< fltp08 > m_current_transform
The cached current view transform matrix.
bool show_grid
Whether to render the reference grid in the background.
fltp08 grid_size
The spacing between grid lines in scene units.
bool m_current_show_skybox
Cached state of whether the skybox is currently shown.
fltp08 mainGridSize() const
Calculates the effective main grid size based on the current view parameters.
fltp08 fixed_grid_size
A user-specified fixed grid size, overriding automatic calculation when set.
bool m_current_show_environment
Cached state of whether the environment is currently shown.
RGBColor sun_color
The color of the sun light source.
Vector< 2, fltp08 > orthographic_fov
The orthographic field of view dimensions (width, height).
Skybox * m_skybox
The currently assigned skybox for environment rendering.
Templated logic for doing matrix multiplication.
Definition Matrix.hpp:182
Represents a color in the RGB space with optional alpha transparency.
Definition RGBColor.h:57
Contains a 3D box used to render complicated backgrounds for a CameraBackground object.
Definition Skybox.h:42
A fixed-size array with N dimensions used as the basis for geometric and mathematical types.
Definition Vector.hpp:62
The primary namespace for the NDEVR SDK.
double fltp08
Defines an alias representing an 8 byte floating-point number.