Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
//=======================================================================
/// Default ctor
ComplexBlackBoxDescriptor::ComplexBlackBoxDescriptor(const std::string& name)
//=======================================================================
/// Default ctor
ComplexBlackBoxDescriptor::ComplexBlackBoxDescriptor(const std::string& name)
- bbtkDebugMessageInc("Core",9,"ComplexBlackBoxDescriptor::ComplexBlackBoxDescriptor(\""<<name<<"\")"<<std::endl);
+ bbtkDebugMessageInc("Kernel",9,"ComplexBlackBoxDescriptor::ComplexBlackBoxDescriptor(\""<<name<<"\")"<<std::endl);
- bbtkDebugMessageInc("Core",9,"ComplexBlackBoxDescriptor::~ComplexBlackBoxDescriptor(\""<<GetTypeName()<<"\")"<<std::endl);
+ bbtkDebugMessageInc("Kernel",9,"ComplexBlackBoxDescriptor::~ComplexBlackBoxDescriptor(\""<<GetTypeName()<<"\")"<<std::endl);
BlackBox* ComplexBlackBoxDescriptor::CreateInstance(const std::string& name)
{
//bbtkError("ComplexBlackBoxDescriptor::CreateInstance not implemented");
BlackBox* ComplexBlackBoxDescriptor::CreateInstance(const std::string& name)
{
//bbtkError("ComplexBlackBoxDescriptor::CreateInstance not implemented");
"ComplexBlackBoxDescriptor::CreateInstance(\""
<<name<<"\") ["
<<GetTypeName()<<"]"<<std::endl);
return mPrototype->bbClone(name);
"ComplexBlackBoxDescriptor::CreateInstance(\""
<<name<<"\") ["
<<GetTypeName()<<"]"<<std::endl);
return mPrototype->bbClone(name);
"ComplexBlackBoxDescriptor::Add(\""
<<type<<"\",\""<<name<<"\") ["
<<GetTypeName()<<"]"<<std::endl);
"ComplexBlackBoxDescriptor::Add(\""
<<type<<"\",\""<<name<<"\") ["
<<GetTypeName()<<"]"<<std::endl);
// Verify that a box with the same name does not exist already
if ( mPrototype->bbUnsafeGetBlackBox( name ) )
// Verify that a box with the same name does not exist already
if ( mPrototype->bbUnsafeGetBlackBox( name ) )
/// Adds a black box to the execution list
void ComplexBlackBoxDescriptor::AddToExecutionList ( const std::string& box)
{
/// Adds a black box to the execution list
void ComplexBlackBoxDescriptor::AddToExecutionList ( const std::string& box)
{
"ComplexBlackBoxDescriptor::Connect(\""
<<from<<"\",\""<<output<<"\",\""
<<to<<"\",\""<<input
<<"\") ["
<<GetTypeName()<<"]"<<std::endl);
"ComplexBlackBoxDescriptor::Connect(\""
<<from<<"\",\""<<output<<"\",\""
<<to<<"\",\""<<input
<<"\") ["
<<GetTypeName()<<"]"<<std::endl);
// Verify that a box with the same name does not exist already
BlackBox* bbfrom = mPrototype->bbGetBlackBox( from );
if ( !bbfrom )
// Verify that a box with the same name does not exist already
BlackBox* bbfrom = mPrototype->bbGetBlackBox( from );
if ( !bbfrom )
- Connection* c = /*mFactory->*/ NewConnection( bbfrom, output, bbto, input );
+ Connection* c = mFactory->NewConnection( bbfrom, output, bbto, input );
"ComplexBlackBoxDescriptor::DefineInput(\""
<<name<<"\",\""<<box<<"\",\""
<<input<<"\",\""<<help
"ComplexBlackBoxDescriptor::DefineInput(\""
<<name<<"\",\""<<box<<"\",\""
<<input<<"\",\""<<help
- AddInputDescriptor ( new ComplexBlackBoxInputDescriptor ( name,
- help,
- box,
- input,
- bb->bbGetInputType(input)));
-
+ AddInputDescriptor ( new ComplexBlackBoxInputDescriptor
+ ( typeid(ComplexBlackBoxDescriptor),
+ name,
+ help,
+ box,
+ input,
+ bb->bbGetInputType(input)));
+
"ComplexBlackBoxDescriptor::DefineOutput(\""
<<name<<"\",\""<<box<<"\",\""
<<output<<"\",\""<<help
"ComplexBlackBoxDescriptor::DefineOutput(\""
<<name<<"\",\""<<box<<"\",\""
<<output<<"\",\""<<help
+ std::vector<std::string> categories;
+ // Split the category string
+ std::string delimiters = ";,";
+ Utilities::SplitString(GetCategory(),
+ delimiters,categories);
+
+
(s) << "<p><TABLE cellspacing=0 cellpadding=3>\n";
(s) << "<TR><TD style='vertical-align: top;'><b> Description </b></TD><TD style='vertical-align: top;'> : </TD><TD style='vertical-align: top;'> "
(s) << "<p><TABLE cellspacing=0 cellpadding=3>\n";
(s) << "<TR><TD style='vertical-align: top;'><b> Description </b></TD><TD style='vertical-align: top;'> : </TD><TD style='vertical-align: top;'> "
- << author << "</TD></TR>\n";
-
+ << author << "</TD></TR>\n";
+
+ (s) << "<TR><TD style='vertical-align: top;'><b> Category(s) </b></TD><TD style='vertical-align: top;'> : </TD><TD style='vertical-align: top;'> ";
+ std::vector<std::string>::iterator ci;
+ for (ci=categories.begin(); ci!=categories.end(); ++ci)
+ {
+ s << "<a href=\"../index-category.html#"<< *ci <<"\">" << *ci
+ << "</a> \n";
+ }
+ s << "</TD></TR>\n";
- (s) << "<TR><TD style='vertical-align: top;'><b> Include </b></TD><TD style='vertical-align: top;'> : </TD><TD style='vertical-align: top;'> "
- << inc << "</TD></TR>\n";
+ s << "<TR><TD style='vertical-align: top;'><b> To use it </b></TD><TD style='vertical-align: top;'> : </TD><TD style='vertical-align: top;'> include ";
+ s << inc << " <a href=\"../../../bbs/"<<inc<<"\">[source]</a>";
+ s << "</TD></TR>\n";
- {
- (s) << "<TR><TD style='vertical-align: top;'><b> Dependencies </b></TD><TD style='vertical-align: top;'> : </TD><TD style='vertical-align: top;'> ";
-
-
-
- std::set<BlackBoxDescriptor*> pdeps;
- ComplexBlackBox::BlackBoxMapType::const_iterator b;
- for ( b = B.begin(); b != B.end(); ++b )
- {
- BlackBoxDescriptor* d = b->second->bbGetDescriptor();
- if (pdeps.find(d) != pdeps.end()) continue;
- pdeps.insert(d);
-
- Package* p = d->GetPackage();
+ {
+ (s) << "<TR><TD style='vertical-align: top;'><b> Uses </b></TD><TD style='vertical-align: top;'> : </TD><TD style='vertical-align: top;'> ";
+
+ std::set<BlackBoxDescriptor*> pdeps;
+ ComplexBlackBox::BlackBoxMapType::const_iterator b;
+ for ( b = B.begin(); b != B.end(); ++b )
+ {
+ BlackBoxDescriptor* d = b->second->bbGetDescriptor();
+ if (pdeps.find(d) != pdeps.end())
+ continue;
+ pdeps.insert(d);
+
+ Package* p = d->GetPackage();
(s) << "<TR><TD style='vertical-align: top;'><B><PRE> "<<name<<" </PRE></B></TD>"
<< "<TD style='vertical-align: top;'><I><PRE> "<<type<<" </PRE></I></TD>"
(s) << "<TR><TD style='vertical-align: top;'><B><PRE> "<<name<<" </PRE></B></TD>"
<< "<TD style='vertical-align: top;'><I><PRE> "<<type<<" </PRE></I></TD>"
(s) << "<TR><TD style='vertical-align: top;'><B><PRE> "<<name<<" </PRE></B></TD>"
<< "<TD style='vertical-align: top;'><I><PRE> "<<type<<" </PRE></I></TD>"
(s) << "<TR><TD style='vertical-align: top;'><B><PRE> "<<name<<" </PRE></B></TD>"
<< "<TD style='vertical-align: top;'><I><PRE> "<<type<<" </PRE></I></TD>"
if (full) bbtkMessage("Help",1,"Complex Black Box <"<<
GetPackage()->GetName()<<"::"
<<GetTypeName()<<">"<<std::endl);
if (full) bbtkMessage("Help",1,"Complex Black Box <"<<
GetPackage()->GetName()<<"::"
<<GetTypeName()<<">"<<std::endl);
- bbtkMessage("Help",1," "<<GetDescription()<<std::endl);
- bbtkMessage("Help",1," By : "<<GetAuthor()<<std::endl);
+ bbtkMessage("Help",1," " << GetDescription() <<std::endl);
+ bbtkMessage("Help",1," By : " << GetAuthor() <<std::endl);
+ bbtkMessage("Help",1," Category(s) : " << GetCategory() <<std::endl);
unsigned int namelmax = 0;
unsigned int typelmax = 0;
for ( i = mInput.begin(); i != mInput.end(); ++i )
unsigned int namelmax = 0;
unsigned int typelmax = 0;
for ( i = mInput.begin(); i != mInput.end(); ++i )
- {
- if (i->second->GetName().size()>namelmax)
- namelmax = i->second->GetName().size();
- if (i->second->GetTypeName().size()>typelmax)
- typelmax = i->second->GetTypeName().size();
- }
+ {
+ if (i->second->GetName().size()>namelmax)
+ namelmax = i->second->GetName().size();
+ if (i->second->GetTypeName().size()>typelmax)
+ typelmax = i->second->GetTypeName().size();
+ }
- {
- for ( o = mOutput.begin(); o != mOutput.end(); ++o )
- {
- if (o->second->GetName().size()>namelmax)
- namelmax = o->second->GetName().size();
+ {
+ for ( o = mOutput.begin(); o != mOutput.end(); ++o )
+ {
+ if (o->second->GetName().size()>namelmax)
+ namelmax = o->second->GetName().size();
- {
- std::string name(i->second->GetName());
- name += "'";
- name.append(1+namelmax-name.size(),' ');
- std::string type(i->second->GetTypeName());
- type += ">";
- type.append(1+typelmax-type.size(),' ');
- bbtkMessage("Help",1,
+ {
+ std::string name(i->second->GetName());
+ name += "'";
+ name.append(1+namelmax-name.size(),' ');
+ std::string type(i->second->GetTypeName());
+ type += ">";
+ type.append(1+typelmax-type.size(),' ');
+ bbtkMessage("Help",1,
- {
- if (mOutput.size())
- bbtkMessage("Help",1," * Outputs : "<<std::endl);
- else
- bbtkMessage("Help",1," * No outputs"<<std::endl);
- for ( o = mOutput.begin(); o != mOutput.end(); ++o )
- {
- std::string name(o->second->GetName());
- name += "'";
- name.append(1+namelmax-name.size(),' ');
- std::string type(o->second->GetTypeName());
- type += ">";
- type.append(1+typelmax-type.size(),' ');
- bbtkMessage("Help",1,
- " '"<<name
- <<" <"<<type
- <<" : "<<o->second->GetDescription()<<std::endl);
- }
- }
+ {
+ if (mOutput.size())
+ bbtkMessage("Help",1," * Outputs : "<<std::endl);
+ else
+ bbtkMessage("Help",1," * No outputs"<<std::endl);
+ for ( o = mOutput.begin(); o != mOutput.end(); ++o )
+ {
+ std::string name(o->second->GetName());
+ name += "'";
+ name.append(1+namelmax-name.size(),' ');
+ std::string type(o->second->GetTypeName());
+ type += ">";
+ type.append(1+typelmax-type.size(),' ');
+ bbtkMessage("Help",1,
+ " '"<<name
+ <<" <"<<type
+ <<" : "<<o->second->GetDescription()<<std::endl);
+ }
+ }
- if (B.size())
- bbtkMessage("Help",1," * Boxes : "<<std::endl);
- else
- bbtkMessage("Help",1," * No boxes"<<std::endl);
+ if (B.size())
+ bbtkMessage("Help",1," * Boxes : "<<std::endl);
+ else
+ bbtkMessage("Help",1," * No boxes"<<std::endl);
- ComplexBlackBox::BlackBoxMapType::const_iterator b;
- for ( b = B.begin(); b != B.end(); ++b )
- {
- bbtkMessage("Help",1," '"<<b->second->bbGetName()<<
- "' <"
- << b->second->bbGetDescriptor()->GetPackage()->GetName()
- <<"::"
- <<b->second->bbGetTypeName()<<">"<<std::endl);
- }
- }
+ ComplexBlackBox::BlackBoxMapType::const_iterator b;
+ for ( b = B.begin(); b != B.end(); ++b )
+ {
+ bbtkMessage("Help",1," '"<<b->second->bbGetName()<<
+ "' <"
+ << b->second->bbGetDescriptor()->GetPackage()->GetName()
+ <<"::"
+ <<b->second->bbGetTypeName()<<">"<<std::endl);
+ }
+ }