(C++)  1.1.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
grail::utility::Blueprint< InstanceType, ContexType, DataType > Class Template Referencefinal

The Blueprint class - Responsible for producing contexts and instances of data used by UtilityReasoner. More...

#include <Blueprint.hh>

Public Member Functions

 Blueprint (std::string name, std::function< std::vector< ContexType >(const DataType &)> contextProducer, std::function< std::unique_ptr< InstanceType >(const ContexType &)> instanceProducer)
 Blueprint - Contructor. More...
 
 Blueprint (const Blueprint &other)=default
 
 Blueprint (Blueprint &&other)=default
 
Blueprintoperator= (const Blueprint &other)=delete
 
Blueprintoperator= (Blueprint &&other)=delete
 
std::vector< ContexType > ProduceContexts (const DataType &data) const
 ProduceContexts - Uses ContextProducerDelegate provided in constructor to produce collection of ContextTypes. More...
 
std::unique_ptr< InstanceType > ProduceInstance (const ContexType &context) const
 ProduceInstance - Uses InstanceProducerDelegate provided in constructor to produce instance of InstanceType based on given ContextType. More...
 
std::string GetName () const
 GetName. More...
 

Detailed Description

template<typename InstanceType, typename ContexType = EntityBlackboardPair, typename DataType = class AIEntity>
class grail::utility::Blueprint< InstanceType, ContexType, DataType >

The Blueprint class - Responsible for producing contexts and instances of data used by UtilityReasoner.

Template Parameters
InstanceType- Type of objects which can be produced from Blueprints and selected by Selector. By default - Behavior.
ContextType- Type of objects which can be paired with Blueprints of InstanceType and evaluated by Selector. Data contained in ContextType object must contain all information needed to produce an instance from Blueprint By default - ValueTuple(AIEntity, Blackboard).
DataType- Type of objects from which ContextType can be generated. Be default - AIEntity.

Constructor & Destructor Documentation

◆ Blueprint()

template<typename InstanceType , typename ContexType = EntityBlackboardPair, typename DataType = class AIEntity>
grail::utility::Blueprint< InstanceType, ContexType, DataType >::Blueprint ( std::string  name,
std::function< std::vector< ContexType >(const DataType &)>  contextProducer,
std::function< std::unique_ptr< InstanceType >(const ContexType &)>  instanceProducer 
)
inline

Blueprint - Contructor.

Parameters
name- Name of this blueprint.
contextProducer- Callable responsible for producing collection of ContextTypes
instanceProducer- Callable responsible for producing instance of InstanceType based on provided ContextType

Member Function Documentation

◆ GetName()

template<typename InstanceType , typename ContexType = EntityBlackboardPair, typename DataType = class AIEntity>
std::string grail::utility::Blueprint< InstanceType, ContexType, DataType >::GetName ( ) const
inline

GetName.

Returns
Name of this blueprint and instances it produces.

◆ ProduceContexts()

template<typename InstanceType , typename ContexType = EntityBlackboardPair, typename DataType = class AIEntity>
std::vector<ContexType> grail::utility::Blueprint< InstanceType, ContexType, DataType >::ProduceContexts ( const DataType &  data) const
inline

ProduceContexts - Uses ContextProducerDelegate provided in constructor to produce collection of ContextTypes.

Parameters
data- Object containing data necessary to produce contexts.
Returns
Collection of produces ContextTypes.

◆ ProduceInstance()

template<typename InstanceType , typename ContexType = EntityBlackboardPair, typename DataType = class AIEntity>
std::unique_ptr<InstanceType> grail::utility::Blueprint< InstanceType, ContexType, DataType >::ProduceInstance ( const ContexType &  context) const
inline

ProduceInstance - Uses InstanceProducerDelegate provided in constructor to produce instance of InstanceType based on given ContextType.

Parameters
context- Context object containing data necessary to produce an instance.
Returns
New instance of InstanceType.

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