38 return std::string(
"FInstance");
65 std::shared_ptr<T> data = std::static_pointer_cast<T>(ins->
objectPointer());
74 std::shared_ptr<T> data = std::static_pointer_cast<T>(ins->
objectPointer());
88 if (
mData ==
nullptr) {
89 mData = std::make_shared<T>();
103 if (ins ==
nullptr) {
117 assert(dataPtr !=
nullptr);
126 return std::dynamic_pointer_cast<Object>(
mData);
130 return std::make_shared<T>();
134 auto dPtr = std::dynamic_pointer_cast<T>(op);
141 std::shared_ptr<Object> dataPtr = ins->standardObjectPointer();
142 auto dPtr = std::dynamic_pointer_cast<T>(dataPtr);
144 return dPtr ==
nullptr ? false :
true;
bool connectField(FBase *dst)
std::shared_ptr< T > getDataPtr()
std::shared_ptr< T > constDataPtr()
void setObjectPointer(std::shared_ptr< Object > op) final
bool canBeConnectedBy(InstanceBase *ins) final
bool connect(FBase *dst) override
std::shared_ptr< T > allocate()
FInstance(std::string name, std::string description, FieldTypeEnum fieldType, OBase *parent)
void setDataPtr(std::shared_ptr< T > sPtr)
std::shared_ptr< Object > standardObjectPointer() final
std::shared_ptr< Object > objectPointer() final
std::shared_ptr< T > mData
const std::string getTemplateName() override
const std::string getClassName() final
virtual std::shared_ptr< Object > standardObjectPointer()=0
virtual void setObjectPointer(std::shared_ptr< Object > op)=0
virtual bool canBeConnectedBy(InstanceBase *ins)=0
static const std::string className()
virtual std::shared_ptr< Object > objectPointer()=0
InstanceBase(std::string name, std::string description, FieldTypeEnum fieldType, OBase *parent)
This is an implementation of AdditiveCCD based on peridyno.