10#include <jem/util/Properties.h>
11#include <jive/util/CtorMap.h>
12#include <jive/util/Factory.h>
14using jive::Properties;
17using jive::StringVector;
18using jive::util::Factory;
53 const Properties &conf,
54 const Properties &props,
55 const Properties &globdat);
71 static bool exists(
const String &type);
90 static Ref<Material>
newInstance(
const String &type,
92 const Properties &conf,
93 const Properties &props,
94 const Properties &globdat);
106 static Ref<Material>
newInstance(
const String &name,
107 const Properties &conf,
108 const Properties &props,
109 const Properties &globdat);
Material class for representing different materials in the simulation.
Internal constructor map for MaterialFactory.
Definition MaterialFactory.h:122
Factory for dynamic material creation and registration.
Definition MaterialFactory.h:35
static bool exists(const String &type)
Check if a material type is registered.
Definition MaterialFactory.cpp:32
static Ref< Material > newInstance(const String &type, const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
Create material instance with explicit type.
Definition MaterialFactory.cpp:52
Ref< Material >(* Constructor)(const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
Constructor function pointer for material creation.
Definition MaterialFactory.h:52
static void declare(const String &type, Constructor ctor)
Register a material type with the factory.
Definition MaterialFactory.cpp:19
MaterialFactory Self
Type alias for the MaterialFactory class itself.
Definition MaterialFactory.h:38
Factory Super
Type alias for the base Factory class.
Definition MaterialFactory.h:41
static StringVector listKnownTypes()
Get list of all registered material types.
Definition MaterialFactory.cpp:41