std::string mTemplateImplementation;
std::vector<std::string> mInclude;
+ std::vector<std::string> mTypedef;
std::string mUserConstructor;
std::string mUserCopyConstructor;
{
std::string name;
std::string type;
+ std::string nature;
std::string descr;
std::string special;
std::string generic_type;
bbtk::GetTextOrClear(BB.getChildNode("include",&j),val);
mInclude.push_back(val);
}
+ // Typedef
+ for (i=0,j=0; i<BB.nChildNode("typedef"); i++)
+ {
+ std::string val;
+ bbtk::GetTextOrClear(BB.getChildNode("typedef",&j),val);
+ mTypedef.push_back(val);
+ }
// Inputs
for (i=0,j=0; i<BB.nChildNode("input"); i++)
io.special = n.getAttribute("special");
}
+ if (n.isAttributeSet("nature"))
+ {
+ io.nature = n.getAttribute("nature");
+ }
+
if (n.isAttributeSet("generic_type"))
{
io.generic_type = n.getAttribute("generic_type");
io.special = n.getAttribute("special");
}
+ if (n.isAttributeSet("nature"))
+ {
+ io.nature = n.getAttribute("nature");
+ }
+
if (n.isAttributeSet("generic_type"))
{
io.generic_type = n.getAttribute("generic_type");
mFile << "{\n";
// Interface
- mFile << " BBTK_USER_BLACK_BOX_INTERFACE("
+ mFile << " BBTK_BLACK_BOX_INTERFACE("
<< mName << ","
<< mParentBlackBox << ");\n";
mFile << " typedef " <<mVtkParent <<" vtkParent;"<<std::endl;
mFile << " void bbDelete() { vtkParent::Delete(); }"<<std::endl;
}
+ for (i=mTypedef.begin(); i!=mTypedef.end(); ++i)
+ {
+ mFile << *i <<"\n";
+ }
// Declare user constructor / copy cons /destr
mFile << "//=================================================================="<<std::endl;
// Category
mFile << "BBTK_CATEGORY(\""<<mCategory<< "\");\n";
+
+ for (i=mTypedef.begin(); i!=mTypedef.end(); ++i)
+ {
+ mFile << *i <<"\n";
+ }
// Inputs
for (ioi=mInput.begin(); ioi!=mInput.end(); ++ioi)
mFile << "BBTK_INPUT(";
}
mFile << mName << "," << ioi->name << ",\""
- << ioi->descr << "\"," << ioi->type <<");\n";
+ << ioi->descr << "\"," << ioi->type << ",\""
+ << ioi->nature<<"\");\n";
}
// Outputs
mFile << "BBTK_OUTPUT(";
}
mFile << mName << "," << ioi->name << ",\""
- << ioi->descr << "\"," << ioi->type <<");\n";
+ << ioi->descr << "\"," << ioi->type << ",\""
+ << ioi->nature<<"\");\n";
}
// EO black box description
mFile << "{\n";
// Interface
- mFile << " BBTK_USER_BLACK_BOX_INTERFACE("
+ mFile << " BBTK_BLACK_BOX_INTERFACE("
<< mName << "Generic,bbtk::AtomicBlackBox);\n";
// Inputs
if (mTemplateParam.size()>0)
{
// Implementation
- mFile << "BBTK_USER_BLACK_BOX_TEMPLATE_IMPLEMENTATION("
+ mFile << "BBTK_BLACK_BOX_TEMPLATE_IMPLEMENTATION("
<< mName << ","
<< mParentBlackBox << ");\n";
if (mGeneric)
{
// Implementation
- mFile << "BBTK_USER_BLACK_BOX_IMPLEMENTATION("
+ mFile << "BBTK_BLACK_BOX_IMPLEMENTATION("
<< mName << "Generic,bbtk::AtomicBlackBox);\n";
// Package
mFile << "BBTK_ADD_BLACK_BOX_TO_PACKAGE("
<< mName << ")\n";
// Implementation
- mFile << "BBTK_USER_BLACK_BOX_IMPLEMENTATION("
+ mFile << "BBTK_BLACK_BOX_IMPLEMENTATION("
<< mName << ","
<< mParentBlackBox << ");\n";
}