Loading...
Searching...
No Matches
ndf.h
Go to the documentation of this file.
1#ifndef _BBM_NDF_H_
2#define _BBM_NDF_H_
3
4#include "concepts/macro.h"
5#include "concepts/ndf.h"
7
8#include "core/spherical.h"
9#include "core/transform.h"
10#include "core/vec_transform.h"
11#include "core/shading_frame.h"
12
13#include "bbm/config.h"
14#include "bbm/constructor.h"
15#include "bbm/bsdf_attribute.h"
16
17/************************************************************************/
18/*! \file ndf.h
19
20 \brief All includes and helpers needed for declaring new ndfs
21
22*************************************************************************/
23
24namespace bbm {
25
26 //////////////////////
27 // ostream operator
28 //////////////////////
29 template<typename NDF> requires bbm::concepts::ndf<NDF>
30 std::ostream& operator<<(std::ostream& s, const NDF& ndf)
31 {
32 s << bbm::toString(ndf);
33 return s;
34 }
35
36} // end bbm namespace
37
38#endif /* _BBM_NDF_H_ */
Default bsdf attribute types.
All BBM methods are defined to operate on a variety of value types and spectrum types....
Tools for easy creation of a constructors.
ndf concept
Definition: ndf.h:29
Microfacet Normal Distribution contract.
Macros for checking if a class meets a concept.
Definition: aggregatebsdf.h:29
std::ostream & operator<<(std::ostream &s, const BSDF &bsdf)
Definition: bsdf_base.h:138
std::string toString(const T &)
toString alias
Definition: stringconvert.h:594
Shading frame transformations.
Methods for handling spherical coordinates.
Basic matrix transformations.
Vector transformation operations.