Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
ph::AModelLight Class Reference

#include <AModelLight.h>

Inheritance diagram for ph::AModelLight:
ph::AGeometricLight ph::ALight ph::PhysicalActor ph::Actor ph::TSdlResourceBase< ESdlTypeCategory::Ref_Actor > ph::SdlResourceBase ph::ISdlResource

Public Member Functions

std::shared_ptr< GeometrygetGeometry (const CookingContext &ctx) const override
 
std::shared_ptr< MaterialgetMaterial (const CookingContext &ctx) const override
 
const EmitterbuildEmitter (const CookingContext &ctx, TSpanView< const Primitive * > lightPrimitives) const override
 
void setGeometry (const std::shared_ptr< Geometry > &geometry)
 
void setMaterial (const std::shared_ptr< Material > &material)
 
void setBackFaceEmit (bool isBackFaceEmit)
 
 PH_DEFINE_SDL_CLASS (TSdlOwnerClass< AModelLight >)
 
- Public Member Functions inherited from ph::AGeometricLight
PreCookReport preCook (const CookingContext &ctx) const override
 Cooking supplemental data before cook(). This method allows user to specify additional configurations for the following cooking process. This method may run in parallel without taking into account resource dependencies.
 
TransientVisualElement cook (const CookingContext &ctx, const PreCookReport &report) const override
 
 PH_DEFINE_SDL_CLASS (TSdlOwnerClass< AGeometricLight >)
 
- Public Member Functions inherited from ph::ALight
 PH_DEFINE_SDL_CLASS (TSdlOwnerClass< ALight >)
 
- Public Member Functions inherited from ph::PhysicalActor
void translate (const real amountX, const real amountY, const real amountZ)
 
void translate (const math::Vector3R &amount)
 
void rotate (const math::Vector3R &axis, const real additionanDegrees)
 
void rotate (const math::QuaternionR &additionalRotation)
 
void scale (const real uniformAmount)
 
void scale (const real amountX, const real amountY, const real amountZ)
 
void scale (const math::Vector3R &amount)
 
void setBaseTransform (const math::TDecomposedTransform< real > &baseLocalToWorld)
 
 PH_DEFINE_SDL_CLASS (TSdlOwnerClass< PhysicalActor >)
 
- Public Member Functions inherited from ph::Actor
virtual void postCook (const CookingContext &ctx, TransientVisualElement &element) const
 Cooking additional data after cook(). This method provides an opportunity for user to decorate the cooked data or any post-cook operations (such as generating debug data). This method may run in parallel without taking into account resource dependencies.
 
virtual CookOrder getCookOrder () const
 
TransientVisualElement stagelessCook (const CookingContext &ctx) const
 Helper to execute the full cooking procedure in one go.
 
 PH_DEFINE_SDL_CLASS (TSdlOwnerClass< Actor >)
 
- Public Member Functions inherited from ph::TSdlResourceBase< ESdlTypeCategory::Ref_Actor >
ESdlTypeCategory getDynamicCategory () const override
 
- Public Member Functions inherited from ph::SdlResourceBase
SdlResourceId getId () const override
 Get the unique ID of this resource. The returned ID is guaranteed to be unique in the current process. Newly created resource cannot have an ID that has been used by a previous resource, even if the previous resource has ended its life cycle. See SdlResourceId.h for some utilities.
 
- Public Member Functions inherited from ph::ISdlResource
 ISdlResource (const ISdlResource &other)=default
 
 ISdlResource (ISdlResource &&other)=default
 
virtual ~ISdlResource ()=default
 
ISdlResourceoperator= (const ISdlResource &rhs)=default
 
ISdlResourceoperator= (ISdlResource &&rhs)=default
 
virtual const SdlClassgetDynamicSdlClass () const
 Get runtime SDL class of the resource.
 
virtual bool isInlinable () const
 

Additional Inherited Members

- Static Public Member Functions inherited from ph::AGeometricLight
static std::shared_ptr< GeometrygetSanifiedGeometry (const std::shared_ptr< Geometry > &srcGeometry, const TransformInfo &srcLocalToWorld, math::TDecomposedTransform< real > *out_remainingLocalToWorld=nullptr)
 
- Static Public Attributes inherited from ph::TSdlResourceBase< ESdlTypeCategory::Ref_Actor >
static constexpr ESdlTypeCategory CATEGORY
 Static category information of the resource. This static category information is required by ISdlResource. See its documentation for more details.
 
- Protected Member Functions inherited from ph::AGeometricLight
virtual EmitterFeatureSet getEmitterFeatureSet () const
 
- Protected Member Functions inherited from ph::TSdlResourceBase< ESdlTypeCategory::Ref_Actor >
 TSdlResourceBase ()=default
 
 TSdlResourceBase (const TSdlResourceBase &other)=default
 
 TSdlResourceBase (TSdlResourceBase &&other)=default
 
TSdlResourceBaseoperator= (const TSdlResourceBase &rhs)=default
 
TSdlResourceBaseoperator= (TSdlResourceBase &&rhs)=default
 
- Protected Member Functions inherited from ph::SdlResourceBase
 SdlResourceBase ()
 
 SdlResourceBase (const SdlResourceBase &other)
 
 SdlResourceBase (SdlResourceBase &&other)=default
 
SdlResourceBaseoperator= (const SdlResourceBase &rhs)
 
SdlResourceBaseoperator= (SdlResourceBase &&rhs)=default
 
- Protected Member Functions inherited from ph::ISdlResource
 ISdlResource ()=default
 
- Protected Attributes inherited from ph::AGeometricLight
bool m_isDirectlyVisible
 
bool m_useBsdfSample
 
bool m_useDirectSample
 
bool m_useEmissionSample
 
- Protected Attributes inherited from ph::PhysicalActor
TransformInfo m_localToWorld
 

Member Function Documentation

◆ buildEmitter()

const Emitter * ph::AModelLight::buildEmitter ( const CookingContext & ctx,
TSpanView< const Primitive * > lightPrimitives ) const
overridevirtual

Generates the core emission part of the light source.

Implements ph::AGeometricLight.

◆ getGeometry()

std::shared_ptr< Geometry > ph::AModelLight::getGeometry ( const CookingContext & ctx) const
overridevirtual

A geometric source would need to place a corresponding geometry in the scene. Override this method and return a geometry for that.

Implements ph::AGeometricLight.

◆ getMaterial()

std::shared_ptr< Material > ph::AModelLight::getMaterial ( const CookingContext & ctx) const
overridevirtual

Generate a suitable material for the light source if physical entity will be present in the scene. The default implementation generates a pure diffuse material with moderate albedo.

Reimplemented from ph::AGeometricLight.

◆ PH_DEFINE_SDL_CLASS()

ph::AModelLight::PH_DEFINE_SDL_CLASS ( TSdlOwnerClass< AModelLight > )
inline

◆ setBackFaceEmit()

void ph::AModelLight::setBackFaceEmit ( bool isBackFaceEmit)

◆ setGeometry()

void ph::AModelLight::setGeometry ( const std::shared_ptr< Geometry > & geometry)

◆ setMaterial()

void ph::AModelLight::setMaterial ( const std::shared_ptr< Material > & material)

The documentation for this class was generated from the following files: