vsg: vsg::Inherit< ParentClass, Subclass > Class Template Reference

vsg 1.1.8 VulkanSceneGraph library

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
vsg::Inherit< ParentClass, Subclass > Class Template Reference

`#include <Inherit.h>`

Inheritance diagram for vsg::Inherit< ParentClass, Subclass >:
[legend]
Collaboration diagram for vsg::Inherit< ParentClass, Subclass >:
[legend]

## Public Member Functions
template<typename... Args>
| Inherit (Args &&... args)
std::size_t | sizeofObject () const noexcept override
const char * | className () const noexcept override
const std::type_info & | type_info () const noexcept override
bool | is_compatible (const std::type_info &type) const noexcept override
int | compare (const Object &rhs) const override
void | accept (Visitor &visitor) override
void | accept (ConstVisitor &visitor) const override
void | accept (RecordTraversal &visitor) const override

## Static Public Member Functions
template<typename... Args>
static ref_ptr< Subclass > | create (Args &&... args)
template<typename... Args>
static ref_ptr< Subclass > | create_if (bool flag, Args &&... args)

## Detailed Description

template<class ParentClass, class Subclass>
class vsg::Inherit< ParentClass, Subclass >

Inherit<> uses the Curiously Recurring Template Pattern to provide the classes versions of create, accept(..), RTTI and sizeofObject()

## Member Function Documentation

## ◆ accept()

template<class ParentClass , class Subclass >

void vsg::Inherit< ParentClass, Subclass >::accept | ( | RecordTraversal & | visitor | ) | const
| inlineoverride

Reimplemented in vsg::RenderGraph.

## ◆ compare()

template<class ParentClass , class Subclass >

int vsg::Inherit< ParentClass, Subclass >::compare | ( | const Object & | rhs | ) | const
| inlineoverride

Reimplemented in vsg::InputAssemblyState, vsg::InstrumentationNode, vsg::Joint, vsg::JointSampler, vsg::Layer, vsg::Light, vsg::LoadedObject, vsg::LOD, vsg::MatrixTransform, vsg::MorphSampler, vsg::MultisampleState, vsg::Options, vsg::PagedLOD, vsg::PercentageCloserSoftShadows, vsg::PipelineLayout, vsg::PointLight, vsg::QuadGroup, vsg::RasterizationState, vsg::RayTracingPipeline, vsg::RegionOfInterest, vsg::Sampler, vsg::ShaderCompileSettings, vsg::ShaderModule, vsg::ShaderSet, vsg::ShaderStage, vsg::ShadowSettings, vsg::SoftShadows, vsg::SpotLight, vsg::StateCommand, vsg::StateGroup, vsg::StateSwitch, vsg::Switch, vsg::TessellationState, vsg::TextGroup, vsg::TileDatabase, vsg::TileDatabaseSettings, vsg::Transform, vsg::TransformSampler, vsg::VertexDraw, vsg::VertexIndexDraw, vsg::VertexInputState, vsg::ViewDependentStateBinding, vsg::ViewDescriptorSetLayout, and vsg::ViewportState.

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

- include/vsg/core/Inherit.h