OptiX
3.9
NVIDIA OptiX Acceleration Engine
Main Page
Modules
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
optixu
optixu_math.h
1
2
/*
3
* Copyright (c) 2010 NVIDIA Corporation. All rights reserved.
4
*
5
* NVIDIA Corporation and its licensors retain all intellectual property and proprietary
6
* rights in and to this software, related documentation and any modifications thereto.
7
* Any use, reproduction, disclosure or distribution of this software and related
8
* documentation without an express license agreement from NVIDIA Corporation is strictly
9
* prohibited.
10
*
11
* TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED *AS IS*
12
* AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS OR IMPLIED,
13
* INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
14
* PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA OR ITS SUPPLIERS BE LIABLE FOR ANY
15
* SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT
16
* LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF
17
* BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR
18
* INABILITY TO USE THIS SOFTWARE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF
19
* SUCH DAMAGES
20
*/
21
22
#ifndef __optixu_optixu_math_h__
23
#define __optixu_optixu_math_h__
24
25
/*
26
* This is a backward compatibility header designed to keep all the CUDA vector types in
27
* the global namespace. If you wish to have an unpolluted global namespace use
28
* <file>_namespace.h version of the headers instead. NOTE: within a project, the usage
29
* of either the optix or global namespace versions of the header files must be
30
* consistent. Mixing the two can cause errors either at compile time or link time.
31
*/
32
33
/*
34
* These need to be included first in order to make sure the CUDA vector types are defined
35
* in the global namespace necessary to maintain backward compatibility.
36
*/
37
#include <vector_types.h>
38
#include <vector_functions.h>
39
40
/*
41
* Any types that were defined in the global namespace in previous versions need to be
42
* declared here. We will also set RT_UINT_USHORT_DEFINED to signal to
43
* optixu_math_namespace.h that these types have already been defined here.
44
*/
45
#if defined(_WIN32)
46
/* uint and ushort are not already defined on Windows systems */
47
typedef
unsigned
int
uint;
48
typedef
unsigned
short
ushort;
49
# define RT_UINT_USHORT_DEFINED
50
#endif
51
52
#include "
optixu_math_namespace.h
"
53
54
/*
55
* In order to maintain backward compatibility we are pulling all the functions in optix's
56
* namespace into the global namespace. If you need your global namespace unpolluted,
57
* include optixu_math_namespace.h instead.
58
*/
59
60
61
/* From optixu_math_namespace.h */
62
63
/* Types */
64
using
optix::uint;
65
using
optix::ushort;
66
67
/* Functions that also exist on the system */
68
using
optix::copysignf;
69
using
optix::expf;
70
using
optix::floor;
71
using
optix::fmaxf;
72
using
optix::fminf;
73
using
optix::max;
74
using
optix::min;
75
76
/* Useful graphics functions */
77
using
optix::clamp;
78
using
optix::cross;
79
using
optix::dot;
80
using
optix::faceforward;
81
using
optix::fresnel_schlick;
82
using
optix::length;
83
using
optix::lerp;
84
using
optix::normalize;
85
using
optix::reflect;
86
using
optix::refract;
87
using
optix::smoothstep;
88
using
optix::temperature;
89
90
#endif
/* #ifndef __optixu_optixu_math_h__ */
optixu_math_namespace.h
OptiX public API.
Generated on Thu Mar 31 2016 09:25:40 for OptiX by
1.8.6