Visual Computing Library  devel
Loading...
Searching...
No Matches
vcl::CameraConcept Concept Reference

Concept definition

template<typename T>
concept vcl::CameraConcept = requires (
T&& obj,
typename RemoveRef<T>::ScalarType s,
typename RemoveRef<T>::ScalarType& sR,
typename RemoveRef<T>::ProjectionMode pm,
typename RemoveRef<T>::ProjectionMode& pmR) {
typename RemoveRef<T>::ScalarType;
typename RemoveRef<T>::PointType;
typename RemoveRef<T>::MatrixType;
typename RemoveRef<T>::ProjectionMode;
RemoveRef<T>();
{ obj.center() } -> Point3Concept;
{ obj.eye() } -> Point3Concept;
{ obj.up() } -> Point3Concept;
{ obj.fieldOfView() } -> std::convertible_to<decltype(s)>;
{ obj.projectionMode() } -> std::convertible_to<decltype(pm)>;
{ obj.verticalHeight() } -> std::convertible_to<decltype(s)>;
{ obj.aspectRatio() } -> std::convertible_to<decltype(s)>;
{ obj.nearPlane() } -> std::convertible_to<decltype(s)>;
{ obj.farPlane() } -> std::convertible_to<decltype(s)>;
{ obj.viewMatrix() } -> Matrix44Concept;
{ obj.projectionMatrix() } -> Matrix44Concept;
requires IsConst<T> || requires {
{ obj.reset() } -> std::same_as<void>;
{ obj.fieldOfView() } -> std::same_as<decltype(sR)>;
{ obj.projectionMode() } -> std::same_as<decltype(pmR)>;
{ obj.setFieldOfViewAdaptingEyeDistance(s) } -> std::same_as<void>;
{ obj.verticalHeight() } -> std::same_as<decltype(sR)>;
{ obj.aspectRatio() } -> std::same_as<decltype(sR)>;
{ obj.nearPlane() } -> std::same_as<decltype(sR)>;
{ obj.farPlane() } -> std::same_as<decltype(sR)>;
};
}
A class representing a box in N-dimensional space.
Definition box.h:46
Definition camera.h:32
A concept representing a 3D Point.
Definition point.h:871