File Behave.h¶
File List > Intern > rayx-core > src > Shader > Behave.h
Go to the documentation of this file
#pragma once
#include "Collision.h"
#include "Core.h"
#include "InvocationState.h"
#include "Ray.h"
namespace rayx {
RAYX_FN_ACC void behaveCrystal(detail::Ray& __restrict ray, const Behaviour::Crystal& __restrict crystal, const CollisionPoint& __restrict col);
RAYX_FN_ACC void behaveSlit(detail::Ray& __restrict ray, const Behaviour::Slit& __restrict slit);
RAYX_FN_ACC void behaveRZP(detail::Ray& __restrict ray, const Behaviour::RZP& __restrict rzp, const CollisionPoint& __restrict col);
RAYX_FN_ACC void behaveGrating(detail::Ray& __restrict ray, const Behaviour::Grating& __restrict grating, const CollisionPoint& __restrict col);
RAYX_FN_ACC void behaveMirror(detail::Ray& __restrict ray, const CollisionPoint& __restrict col, const Coating& __restrict coating, int material,
const int* __restrict materialIndices, const double* __restrict materialTable);
RAYX_FN_ACC void behaveFoil(detail::Ray& __restrict ray, const Behaviour::Foil& __restrict foil, const CollisionPoint& __restrict col, int material,
const int* __restrict materialIndices, const double* __restrict materialTable);
RAYX_FN_ACC void behaveImagePlane(detail::Ray& __restrict ray);
RAYX_FN_ACC void behave(detail::Ray& __restrict ray, const CollisionPoint& __restrict col, const OpticalElement& __restrict element,
const int* __restrict materialIndices, const double* __restrict materialTable);
} // namespace rayx