const std::string& str, const std::string& sub, const std::string& nsub
);
bool ReadFile( TParsedLines& lines, const std::string& fname );
-void ExpandGroups( TLines& res, const TLines& lines );
+void ExpandGroups( TLines& res, const TLines& lines, const TVariables& vars );
void ExpandVariables( TLines& res, const TLines& lines, const TVariables& vars );
-void ParseIncludes( TLines& res, const TLines& lines, const std::string& ext );
+void ParseIncludes( TLines& res, const TLines& lines, const std::string& ext = "" );
void PrintLines(
const std::string& prefix, const std::string& suffix,
const TLines& lines, std::ostream& out
return( 1 );
} // fi
- std::string lname = argv[ 2 ];
+ std::string input_definitions_fname = argv[ 1 ];
+ std::string library_name = argv[ 2 ];
+ std::string header_file_fname = argv[ 3 ];
+ std::string source_file_fname = argv[ 4 ];
// Read file and simple parse it
TParsedLines lines;
- if( !ReadFile( lines, argv[ 1 ] ) )
+ if( !ReadFile( lines, input_definitions_fname ) )
{
std::cerr
<< "Error opening file: \""
- << argv[ 1 ] << "\""
+ << input_definitions_fname << "\""
<< std::endl;
return( 1 );
} // fi
- // Build definitions
+ // Expand variable definitions
TVariables vars;
for( auto dIt = lines[ 'd' ].begin( ); dIt != lines[ 'd' ].end( ); ++dIt )
{
for( ; tIt != tokens.end( ); ++tIt )
vars[ vName ].push_back( *tIt );
+ TLines res;
+ ExpandVariables( res, vars[ vName ], vars );
+ vars[ vName ] = res;
+
} // rof
// First include section
- TLines first_includes;
- ParseIncludes( first_includes, lines[ 'f' ], "" );
-
- TLines normal_includes;
- ParseIncludes( normal_includes, lines[ 'i' ], "" );
-
- TLines template_includes;
- ParseIncludes( template_includes, lines[ 't' ], "" );
-
- TLines template_sources;
+ TLines first_includes, normal_includes, template_includes, template_sources;
+ ParseIncludes( first_includes, lines[ 'f' ] );
+ ParseIncludes( normal_includes, lines[ 'i' ] );
+ ParseIncludes( template_includes, lines[ 't' ] );
ParseIncludes( template_sources, lines[ 't' ], "xx" );
// Expand groups
- TLines classes;
- ExpandGroups( classes, lines[ 'c' ] );
+ TLines pre_classes;
+ ExpandGroups( pre_classes, lines[ 'c' ], vars );
// Expand variables
TLines real_classes;
- ExpandVariables( real_classes, classes, vars );
-
- // Prepare precompiler options
- TLines global_header;
- std::stringstream global_header_stream;
- global_header_stream
- << "#ifndef __" << lname << "__H__" << std::endl
- << "#define __" << lname << "__H__" << std::endl<< std::endl
- << "#include <cpPlugins_Config.h>" << std::endl << std::endl;
- global_header.push_back( global_header_stream.str( ) );
-
- TLines macro_header;
- std::stringstream macro_header_stream;
- macro_header_stream
- << "#ifdef " << lname << "_EXPORTS" << std::endl
- << "# define " << lname << "_PREFIX template class "
- << lname << "_EXPORT" << std::endl
- << "#else // " << lname << "_EXPORTS" << std::endl
- << "# define " << lname << "_PREFIX extern template class" << std::endl
- << "#endif // " << lname << "_EXPORTS" << std::endl;
- macro_header.push_back( macro_header_stream.str( ) );
-
- TLines end_global_header;
- std::stringstream end_global_header_stream;
- end_global_header_stream
- << "#endif // __" << lname << "__H__" << std::endl;
- end_global_header.push_back( end_global_header_stream.str( ) );
-
- // Write header file
- std::ofstream header_file( argv[ 3 ] );
+ ExpandVariables( real_classes, pre_classes, vars );
+
+ // Prepare header file
+ std::ofstream header_file( header_file_fname.c_str( ) );
if( !header_file )
{
std::cerr
- << "Error opening \"" << argv[ 3 ] << "\" for writing." << std::endl;
+ << "Error opening \"" << header_file_fname
+ << "\" for writing." << std::endl;
return( 1 );
} // fi
- PrintLines( "", "", global_header, header_file );
+
+ // Print header
header_file
- << "#include <" << lname << "_Export.h>" << std::endl << std::endl;
+ << "#ifndef __" << library_name << "__H__" << std::endl
+ << "#define __" << library_name << "__H__" << std::endl<< std::endl
+ << "#include <cpPlugins_Config.h>" << std::endl
+ << "#include <" << library_name << "_Export.h>" << std::endl << std::endl;
PrintLines( "", "", lines[ 'b' ], header_file );
header_file << std::endl;
PrintLines( "", "", first_includes, header_file );
- PrintLines( "", "", macro_header, header_file );
+ header_file
+ << "#ifdef " << library_name << "_EXPORTS" << std::endl
+ << "# define " << library_name << "_PREFIX template class "
+ << library_name << "_EXPORT" << std::endl
+ << "#else // " << library_name << "_EXPORTS" << std::endl
+ << "# define " << library_name
+ << "_PREFIX extern template class" << std::endl
+ << "#endif // "
+ << library_name << "_EXPORTS" << std::endl;
PrintLines( "", "", normal_includes, header_file );
PrintLines( "", "", template_includes, header_file );
- header_file << std::endl << "#ifdef " << lname << "_EXPORTS" << std::endl;
+ header_file
+ << std::endl << "#ifdef " << library_name << "_EXPORTS" << std::endl;
PrintLines( "", "", template_sources, header_file );
- header_file << "#endif // " << lname << "_EXPORTS" << std::endl;
- header_file << std::endl;
- PrintLines( lname + std::string( "_PREFIX " ), ";", real_classes, header_file );
+ header_file << "#endif // " << library_name << "_EXPORTS" << std::endl;
header_file << std::endl;
- PrintLines( "", "", end_global_header, header_file );
+ PrintLines(
+ library_name + std::string( "_PREFIX " ), ";", real_classes, header_file
+ );
+ header_file
+ << std::endl << "#endif // __" << library_name << "__H__" << std::endl;
header_file.close( );
// Write source file
- std::ofstream source_file( argv[ 4 ] );
+ std::ofstream source_file( source_file_fname );
if( !source_file )
{
std::cerr
- << "Error opening \"" << argv[ 3 ] << "\" for writing." << std::endl;
+ << "Error opening \"" << header_file_fname << "\" for writing." << std::endl;
return( 1 );
} // fi
source_file
- << "#include \"" << argv[ 3 ] << "\"" << std::endl;
- /* TODO
- PrintLines( "", "", first_includes, source_file );
- PrintLines( "", "", template_includes, source_file );
- source_file << std::endl;
- PrintLines(
- std::string( "template class " ) + lname + std::string( "_EXPORT " ),
- ";", real_classes, source_file
- );
- */
+ << "#include \"" << header_file_fname << "\"" << std::endl;
source_file.close( );
return( 0 );
}
)
{
std::string res = str;
- size_t index = 0;
- while( true )
- {
- index = res.find( sub, index );
- if( index == std::string::npos ) break;
+ size_t index;
+ while( ( index = res.find( sub ) ) != std::string::npos )
res.replace( index, sub.size( ), nsub );
- index += sub.size( );
-
- } // elihw
return( res );
}
}
// -------------------------------------------------------------------------
-void ExpandGroups( TLines& res, const TLines& lines )
+void ExpandGroups( TLines& res, const TLines& lines, const TVariables& vars )
{
for( auto lIt = lines.begin( ); lIt != lines.end( ); ++lIt )
{
- auto b_pos = lIt->find( "#{" );
+ auto b_pos = lIt->find( "@{" );
if( b_pos != std::string::npos )
{
auto e_pos = lIt->find( "}" );
auto expansion = lIt->substr( b_pos + 2, e_pos - b_pos - 2 );
auto tokens = Tokenize( expansion, ";" );
for( auto tIt = tokens.begin( ); tIt != tokens.end( ); ++tIt )
- *tIt = lIt->substr( 0, b_pos ) + *tIt + lIt->substr( e_pos + 1 );
- ExpandGroups( res, tokens );
+ {
+ auto vIt = vars.find( *tIt );
+ if( vIt != vars.end( ) )
+ {
+ auto wIt = vIt->second.begin( );
+ std::string values = *wIt;
+ for( wIt++; wIt != vIt->second.end( ); ++wIt )
+ values += ";" + *wIt;
+ *tIt = Replace( *lIt, vIt->first, values );
+ }
+ else
+ *tIt = lIt->substr( 0, b_pos ) + *tIt + lIt->substr( e_pos + 1 );
+
+ } // rof
+ ExpandGroups( res, tokens, vars );
}
else
res.push_back( *lIt );
// -------------------------------------------------------------------------
void ExpandVariables( TLines& res, const TLines& lines, const TVariables& vars )
{
- const char* int_types[] = { "char", "short", "int", "long" };
- const char* float_types[] = { "float", "double" };
- unsigned int n_int_types = 4, n_float_types = 2;
for( auto lIt = lines.begin( ); lIt != lines.end( ); ++lIt )
{
auto b_pos = lIt->find( "#" );
{
auto tokens = Tokenize( lIt->substr( b_pos ), " ,;:{}[]()\"$&<>" );
std::string cmd = tokens[ 0 ];
- if(
- cmd == "#int_types" || cmd == "#uint_types" || cmd == "#float_types"
- )
+ auto vIt = vars.find( cmd );
+ if( vIt != vars.end( ) )
{
- const char** types = ( cmd == "#float_types" )? float_types: int_types;
- unsigned int size = ( cmd == "#float_types" )? n_float_types: n_int_types;
- std::string ustr = ( ( cmd == "#uint_types" )? "unsigned ": "" );
- TLines new_res;
- for( unsigned int i = 0; i < size; ++i )
- new_res.push_back( Replace( *lIt, cmd, ustr + types[ i ] ) );
- ExpandVariables( res, new_res, vars );
- }
- else
- {
- auto vIt = vars.find( cmd );
- if( vIt != vars.end( ) )
+ if( vIt->second.size( ) > 0 )
{
TLines new_res;
- for(
- auto wIt = vIt->second.begin( ); wIt != vIt->second.end( ); ++wIt
- )
+ for( auto wIt = vIt->second.begin( ); wIt != vIt->second.end( ); ++wIt )
new_res.push_back( Replace( *lIt, cmd, *wIt ) );
ExpandVariables( res, new_res, vars );
SET(
target_LIBRARIES
cpPlugins_Base
+ cpPlugins_Transforms
cpPlugins_Image
cpPlugins_Mesh
cpPlugins_ImageFiltersBase
cpPlugins_ImageIO
cpPlugins_ImageIterators
cpPlugins_ImageITK2VTK
+ cpPlugins_ThresholdFilters
+ cpPlugins_DistanceMapFilters
+ cpPlugins_ResamplingFilters
cpPlugins_tinyxml2
)
IF(NOT WIN32)
-i string
-i vector
-i itkIndex.h
-t itkArray.h
-t itkFixedArray.h
+f cpPlugins_Config.h
+
t itkCovariantVector.h
+t itkFixedArray.h
t itkMatrix.h
t itkPoint.h
-t itkVector.h
t itkRGBPixel.h
t itkRGBAPixel.h
-t itkSimpleDataObjectDecorator.h
-t itkVectorContainer.h
-
-c itk::Array< #scalars >
-c itk::FixedArray< #scalars, #dims >
-c itk::FixedArray< float, 6 >
-c #{itk::CovariantVector;itk::Point;itk::Vector}< #float_types, #dims >
-c #{itk::RGBPixel;itk::RGBAPixel}< #scalars >
-c itk::Matrix< #float_types, #dims, #dims >
-c itk::SimpleDataObjectDecorator< #{#scalars;std::string} >
-c itk::SimpleDataObjectDecorator< std::vector< itk::Index< #{2;3} > > >
-c itk::SimpleDataObjectDecorator< std::vector< itk::Point< #float_types, #{2;3} > > >
-c itk::VectorContainer< unsigned long, itk::Point< #float_types, #dims > >
+t itkSymmetricEigenAnalysis.h
+t itkSymmetricSecondRankTensor.h
+t itkVector.h
-d #scalars=#int_types;#uint_types;#float_types
d #dims=1;2;3;4
+d #int=char;short;int;long
+d #float=float;double
+d #scalar=#int;unsigned #int;#float
+d #color_pixels=itk::RGBPixel< #scalar >;itk::RGBAPixel< #scalar >
+d #lin_alg_vectors=itk::CovariantVector;itk::Point;itk::Vector
+
+c itk::FixedArray< #scalar, #dims >
+c #color_pixels
+c #lin_alg_vectors< #float, #dims >
+c itk::Matrix< #float, #dims, #dims >
+c itk::SymmetricEigenAnalysis< itk::Matrix< #float, #dims, #dims >, itk::FixedArray< #float, #dims >, itk::Matrix< #float, #dims, #dims > >
+c itk::SymmetricSecondRankTensor< #float, #dims >
#include <itkVector.hxx>
// -------------------------------------------------------------------------
-#define cpPlugins_Base_extra_SimpleArray( V, D ) \
- template cpPlugins_Base_EXPORT \
- std::ostream& itk::operator<< < D >( \
- std::ostream& a, itk::V< D > const& b \
+#define cpPlugins_Base_extra_SimpleArray( V, D ) \
+ template cpPlugins_Base_EXPORT \
+ std::ostream& itk::operator<< < D >( \
+ std::ostream& a, V< D > const& b \
)
-cpPlugins_Base_extra_SimpleArray( ImageRegion, 1 );
-cpPlugins_Base_extra_SimpleArray( ImageRegion, 2 );
-cpPlugins_Base_extra_SimpleArray( ImageRegion, 3 );
-cpPlugins_Base_extra_SimpleArray( ImageRegion, 4 );
+cpPlugins_Base_extra_SimpleArray( itk::ImageRegion, 1 );
+cpPlugins_Base_extra_SimpleArray( itk::ImageRegion, 2 );
+cpPlugins_Base_extra_SimpleArray( itk::ImageRegion, 3 );
+cpPlugins_Base_extra_SimpleArray( itk::ImageRegion, 4 );
// -------------------------------------------------------------------------
-#define cpPlugins_Base_extra_Array( V, T, D ) \
- template cpPlugins_Base_EXPORT \
- std::ostream& itk::operator<< < T, D >( \
- std::ostream& a, itk::V< T, D > const& b \
+#define cpPlugins_Base_extra_Array( V, T, D ) \
+ template cpPlugins_Base_EXPORT \
+ std::ostream& itk::operator<< < T, D >( \
+ std::ostream& a, V< T, D > const& b \
)
-cpPlugins_Base_extra_Array( Point, double, 1 );
-cpPlugins_Base_extra_Array( Point, double, 2 );
-cpPlugins_Base_extra_Array( Point, double, 3 );
-cpPlugins_Base_extra_Array( Point, double, 4 );
+#define cpPlugins_Base_extra_Array_AllScalars( V, D ) \
+ cpPlugins_Base_extra_Array( V, float, D ); \
+ cpPlugins_Base_extra_Array( V, double, D )
-cpPlugins_Base_extra_Array( Vector, double, 1 );
-cpPlugins_Base_extra_Array( Vector, double, 2 );
-cpPlugins_Base_extra_Array( Vector, double, 3 );
-cpPlugins_Base_extra_Array( Vector, double, 4 );
+#define cpPlugins_Base_extra_Array_AllScalars_AllDims( V ) \
+ cpPlugins_Base_extra_Array_AllScalars( V, 1 ); \
+ cpPlugins_Base_extra_Array_AllScalars( V, 2 ); \
+ cpPlugins_Base_extra_Array_AllScalars( V, 3 ); \
+ cpPlugins_Base_extra_Array_AllScalars( V, 4 )
+
+cpPlugins_Base_extra_Array_AllScalars_AllDims( itk::Point );
+cpPlugins_Base_extra_Array_AllScalars_AllDims( itk::Vector );
// eof - $RCSfile$
ENDFOREACH(i)
## Target links
-TARGET_LINK_LIBRARIES(
- cpPlugins_Base
- ${ITK_LIBRARIES}
- ${VTK_LIBRARIES}
- )
-TARGET_LINK_LIBRARIES(
- cpPlugins_Image
- cpPlugins_Base
- )
-TARGET_LINK_LIBRARIES(
- cpPlugins_Mesh
- cpPlugins_Base
- )
-TARGET_LINK_LIBRARIES(
- cpPlugins_ImageFiltersBase
- cpPlugins_Image
- )
-TARGET_LINK_LIBRARIES(
- cpPlugins_ImageITK2VTK
- cpPlugins_ImageFiltersBase
- )
-TARGET_LINK_LIBRARIES(
- cpPlugins_ImageIterators
- cpPlugins_Image
- )
-TARGET_LINK_LIBRARIES(
- cpPlugins_ImageIO
- cpPlugins_ImageFiltersBase
- cpPlugins_ImageIterators
- )
-TARGET_LINK_LIBRARIES(
- cpPlugins_ThresholdFilters
- cpPlugins_ImageFiltersBase
- )
-TARGET_LINK_LIBRARIES(
- cpPlugins_DistanceMapFilters
- cpPlugins_ThresholdFilters
- )
+TARGET_LINK_LIBRARIES(cpPlugins_Base ${ITK_LIBRARIES} ${VTK_LIBRARIES})
+TARGET_LINK_LIBRARIES(cpPlugins_Image cpPlugins_Base)
+TARGET_LINK_LIBRARIES(cpPlugins_Mesh cpPlugins_Base)
+TARGET_LINK_LIBRARIES(cpPlugins_Transforms cpPlugins_Base)
+TARGET_LINK_LIBRARIES(cpPlugins_ImageIterators cpPlugins_Image)
+TARGET_LINK_LIBRARIES(cpPlugins_ImageFiltersBase cpPlugins_Image)
+TARGET_LINK_LIBRARIES(cpPlugins_InPlaceImageFiltersBase cpPlugins_ImageFiltersBase)
+TARGET_LINK_LIBRARIES(cpPlugins_ThresholdFilters cpPlugins_InPlaceImageFiltersBase cpPlugins_ImageIterators)
+TARGET_LINK_LIBRARIES(cpPlugins_DistanceMapFilters cpPlugins_ThresholdFilters)
+TARGET_LINK_LIBRARIES(cpPlugins_ImageIO cpPlugins_ImageFiltersBase)
+TARGET_LINK_LIBRARIES(cpPlugins_ImageITK2VTK cpPlugins_ImageFiltersBase)
+
+#TARGET_LINK_LIBRARIES(cpPlugins_Transforms
+# cpPlugins_Base
+# )
+# TARGET_LINK_LIBRARIES(
+# cpPlugins_Image
+# cpPlugins_Base
+# )
+# TARGET_LINK_LIBRARIES(
+# cpPlugins_Mesh
+# cpPlugins_Base
+# )
+# TARGET_LINK_LIBRARIES(
+# cpPlugins_ImageFiltersBase
+# cpPlugins_Image
+# )
+# TARGET_LINK_LIBRARIES(
+# cpPlugins_ImageITK2VTK
+# cpPlugins_ImageFiltersBase
+# )
+# TARGET_LINK_LIBRARIES(
+# cpPlugins_ImageIterators
+# cpPlugins_Image
+# )
+# TARGET_LINK_LIBRARIES(
+# cpPlugins_ImageIO
+# cpPlugins_ImageFiltersBase
+# cpPlugins_ImageIterators
+# )
+# TARGET_LINK_LIBRARIES(
+# cpPlugins_ThresholdFilters
+# cpPlugins_ImageFiltersBase
+# cpPlugins_ImageIterators
+# )
+# TARGET_LINK_LIBRARIES(
+# cpPlugins_DistanceMapFilters
+# cpPlugins_ThresholdFilters
+# )
+# TARGET_LINK_LIBRARIES(
+# cpPlugins_ResamplingFilters
+# cpPlugins_Transforms
+# cpPlugins_ImageFiltersBase
+# cpPlugins_ImageIterators
+# )
# # ===================================
# # = Integrate all source file names =
-f cpPlugins_Instances/ImageFiltersBase.h
-f cpPlugins_Instances/ImageIterators.h
+f cpPlugins_Instances/InPlaceImageFiltersBase.h
+
+i itkProgressReporter.h
+t itkBinaryContourImageFilter.h
t itkSignedMaurerDistanceMapImageFilter.h
-c itk::SignedMaurerDistanceMapImageFilter< itk::Image< #scalars, #dims >, itk::Image< #float_types, #dims > >
+d #dims=2;3
+d #int=char;short;int;long
+d #float=float;double
+d #scalar=#int;unsigned #int;#float
+d #filters=itk::BinaryContourImageFilter;itk::SignedMaurerDistanceMapImageFilter
-d #scalars=#int_types;#uint_types;#float_types
-d #dims=1;2;3;4
+c #filters< itk::Image< @{#scalar}, #dims >, itk::Image< @{#float}, #dims > >
f cpPlugins_Instances/Base.h
+
i complex
-t itkImageRegion.h
-t itkImportImageContainer.h
-t itkImageBase.h
t itkImage.h
+t itkImageBase.h
+t itkImportImageContainer.h
+t itkImageRegion.h
-c itk::ImageRegion< #dims >
-c itk::ImportImageContainer< unsigned long, #{#scalars;#colors;#complex} >
-c itk::ImportImageContainer< unsigned long, #vectors< #float_types, #dims > >
-c itk::ImageBase< #dims >
-c itk::Image< #{#scalars;#colors;#complex}, #dims >
-c itk::Image< #vectors< #float_types, #dims >, #dims >
-
-d #scalars=#int_types;#uint_types;#float_types
-d #colors=itk::RGBPixel< #scalars >;itk::RGBAPixel< #scalars >
-d #complex=std::complex< #float_types >
-d #vectors=itk::CovariantVector;itk::Point;itk::Vector
d #dims=1;2;3;4
+d #int=char;short;int;long
+d #float=float;double
+d #scalar=#int;unsigned #int;#float
+d #color_pixels=itk::RGBPixel< #scalar >;itk::RGBAPixel< #scalar >
+d #complex_pixels=std::complex< #float >
+d #lin_alg_vectors=itk::CovariantVector;itk::Point;itk::Vector
+d #pixels=#scalar;#color_pixels;#complex_pixels
+d #array_pixels=#lin_alg_vectors;itk::SymmetricSecondRankTensor
+d #double_array_pixels=itk::Matrix
+
+c itk::ImportImageContainer< unsigned long, #pixels >
+c itk::ImportImageContainer< unsigned long, #array_pixels< #float, #dims > >
+c itk::ImportImageContainer< unsigned long, #double_array_pixels< #float, #dims, #dims > >
+
+c itk::Image< #pixels, #dims >
+c itk::Image< #array_pixels< #float, #dims >, #dims >
+c itk::Image< #double_array_pixels< #float, #dims, #dims >, #dims >
f cpPlugins_Instances/Image.h
+
t itkImageSource.h
t itkImageToImageFilter.h
-c itk::ImageSource< itk::Image< #{#scalars;#colors;#complex}, #dims > >
-c itk::ImageSource< itk::Image< #vectors< #float_types, #dims >, #dims > >
-
-d #scalars=#int_types;#uint_types;#float_types
-d #colors=itk::RGBPixel< #scalars >;itk::RGBAPixel< #scalars >
-d #complex=std::complex< #float_types >
-d #vectors=itk::CovariantVector;itk::Point;itk::Vector
d #dims=1;2;3;4
+d #int=char;short;int;long
+d #float=float;double
+d #scalar=#int;unsigned #int;#float
+d #color_pixels=itk::RGBPixel< #scalar >;itk::RGBAPixel< #scalar >
+d #complex_pixels=std::complex< #float >
+d #lin_alg_vectors=itk::CovariantVector;itk::Point;itk::Vector
+d #pixels=#scalar;#color_pixels;#complex_pixels
+d #array_pixels=#lin_alg_vectors;itk::SymmetricSecondRankTensor
+d #double_array_pixels=itk::Matrix
+d #filters=itk::ImageToImageFilter
+
+c itk::ImageSource< itk::Image< #pixels, #dims > >
+c itk::ImageSource< itk::Image< #array_pixels< #float, #dims >, #dims > >
+c itk::ImageSource< itk::Image< #double_array_pixels< #float, #dims, #dims >, #dims > >
+
+c #filters< itk::Image< @{#pixels}, #dims >, itk::Image< @{#pixels}, #dims > >
+c #filters< itk::Image< #array_pixels< @{#float}, #dims >, #dims >, itk::Image< #array_pixels< @{#float}, #dims >, #dims > >
+c #filters< itk::Image< #double_array_pixels< @{#float}, #dims, #dims >, #dims >, itk::Image< #double_array_pixels< @{#float}, #dims, #dims >, #dims > >
b #include <ITKIOImageBaseExport.h>
b #undef ITKIOImageBase_HIDDEN
b #define ITKIOImageBase_HIDDEN
+
f cpPlugins_Instances/Image.h
+
+i itkImageIOFactory.h
+i itkGDCMSeriesFileNames.h
+
t itkImageFileReader.h
t itkImageFileWriter.h
t itkImageSeriesReader.h
t itkConvertPixelBuffer.h
t itkImageAlgorithm.h
-i itkImageIOFactory.h
-i itkGDCMSeriesFileNames.h
-c #{itk::ImageFileReader;itk::ImageFileWriter;itk::ImageSeriesReader}< itk::Image< #{#scalars;#colors;#complex}, #dims > >
-c #{itk::ImageFileReader;itk::ImageFileWriter;itk::ImageSeriesReader}< itk::Image< #vectors< #float_types, #dims >, #dims > >
-
-d #scalars=#int_types;#uint_types;#float_types
-d #colors=itk::RGBPixel< #scalars >;itk::RGBAPixel< #scalars >
-d #complex=std::complex< #float_types >
-d #vectors=itk::CovariantVector;itk::Point;itk::Vector
d #dims=1;2;3;4
+d #int=char;short;int;long
+d #float=float;double
+d #scalar=#int;unsigned #int;#float
+d #color_pixels=itk::RGBPixel< #scalar >;itk::RGBAPixel< #scalar >
+d #complex_pixels=std::complex< #float >
+d #lin_alg_vectors=itk::CovariantVector;itk::Point;itk::Vector
+d #pixels=#scalar;#color_pixels;#complex_pixels
+d #array_pixels=#lin_alg_vectors;itk::SymmetricSecondRankTensor
+d #double_array_pixels=itk::Matrix
+d #filters=itk::ImageFileReader;itk::ImageFileWriter;itk::ImageSeriesReader
+
+c #filters< itk::Image< #pixels, #dims > >
+c #filters< itk::Image< #array_pixels< #float, #dims >, #dims > >
+c #filters< itk::Image< #double_array_pixels< #float, #dims, #dims >, #dims > >
t itkVTKImageExport.h
t itkVTKImageImport.h
-c #filters< itk::Image< #{#scalars;#colors}, #dims > >
-c #filters< itk::Image< #vectors< #float_types, #dims >, #dims > >
-
-d #scalars=#int_types;#uint_types;#float_types
-d #colors=itk::RGBPixel< #scalars >;itk::RGBAPixel< #scalars >
-d #vectors=itk::CovariantVector;itk::Point;itk::Vector
d #dims=2;3
+d #int=char;short;int;long
+d #float=float;double
+d #scalar=#int;unsigned #int;#float
+d #color_pixels=itk::RGBPixel< #scalar >;itk::RGBAPixel< #scalar >
+d #lin_alg_vectors=itk::CovariantVector;itk::Point;itk::Vector
+d #pixels=#scalar;#color_pixels;#complex_pixels
+d #array_pixels=#lin_alg_vectors;itk::SymmetricSecondRankTensor
+d #double_array_pixels=itk::Matrix
d #filters=itk::ImageToVTKImageFilter;itk::VTKImageToImageFilter
+
+c #filters< itk::Image< #pixels, #dims > >
+c #filters< itk::Image< #array_pixels< #float, #dims >, #dims > >
+c #filters< itk::Image< #double_array_pixels< #float, #dims, #dims >, #dims > >
b #define ITK_LEGACY_REMOVE
+
f cpPlugins_Instances/Image.h
+
t itkImageRegionConstIterator.h
t itkImageRegionIterator.h
t itkImageScanlineConstIterator.h
t itkImageScanlineIterator.h
+t itkImageLinearConstIteratorWithIndex.h
+t itkImageLinearIteratorWithIndex.h
+t itkImageConstIteratorWithIndex.h
+t itkImageIteratorWithIndex.h
+t itkZeroFluxNeumannBoundaryCondition.h
+t itkConstNeighborhoodIterator.h
+t itkNeighborhoodIterator.h
+t itkNeighborhood.h
+t itkConstShapedNeighborhoodIterator.h
+t itkShapedNeighborhoodIterator.h
+t itkImageRegionConstIteratorWithIndex.h
+t itkImageRegionIteratorWithIndex.h
-c #iterators< itk::Image< #{#scalars;#colors;#complex}, #dims > >
-c #iterators< itk::Image< #vectors< #float_types, #dims >, #dims > >
-
-d #scalars=#int_types;#uint_types;#float_types
-d #colors=itk::RGBPixel< #scalars >;itk::RGBAPixel< #scalars >
-d #complex=std::complex< #float_types >
-d #vectors=itk::CovariantVector;itk::Point;itk::Vector
d #dims=1;2;3;4
-d #iterators=itk::ImageRegionConstIterator;itk::ImageRegionIterator;itk::ImageScanlineConstIterator;itk::ImageScanlineIterator
\ No newline at end of file
+d #int=char;short;int;long
+d #float=float;double
+d #scalar=#int;unsigned #int;#float
+d #color_pixels=itk::RGBPixel< #scalar >;itk::RGBAPixel< #scalar >
+d #complex_pixels=std::complex< #float >
+d #lin_alg_vectors=itk::CovariantVector;itk::Point;itk::Vector
+d #pixels=#scalar;#color_pixels;#complex_pixels
+d #array_pixels=#lin_alg_vectors;itk::SymmetricSecondRankTensor
+d #double_array_pixels=itk::Matrix
+d #iterators=itk::ImageRegionConstIterator;itk::ImageRegionIterator;itk::ImageConstIteratorWithIndex;itk::ImageIteratorWithIndex;itk::ImageScanlineConstIterator;itk::ImageScanlineIterator;itk::ImageLinearConstIteratorWithIndex;itk::ImageLinearIteratorWithIndex;itk::ImageRegionConstIteratorWithIndex;itk::ImageRegionIteratorWithIndex
+d #conds=itk::ZeroFluxNeumannBoundaryCondition
+d #neigh_iterators=itk::ConstNeighborhoodIterator;itk::NeighborhoodIterator;itk::ConstShapedNeighborhoodIterator;itk::ShapedNeighborhoodIterator
+
+c #iterators< itk::Image< #pixels, #dims > >
+c #iterators< itk::Image< #array_pixels< #float, #dims >, #dims > >
+c #iterators< itk::Image< #double_array_pixels< #float, #dims, #dims >, #dims > >
+c #conds< itk::Image< #scalar, #dims >, itk::Image< #scalar, #dims > >
+c #neigh_iterators< itk::Image< #scalar, #dims >, #conds< itk::Image< #scalar, #dims >, itk::Image< #scalar, #dims > > >
--- /dev/null
+f cpPlugins_Instances/ImageFiltersBase.h
+
+t itkInPlaceImageFilter.h
+
+d #dims=1;2;3;4
+d #int=char;short;int;long
+d #float=float;double
+d #scalar=#int;unsigned #int;#float
+d #color_pixels=itk::RGBPixel< #scalar >;itk::RGBAPixel< #scalar >
+d #complex_pixels=std::complex< #float >
+d #lin_alg_vectors=itk::CovariantVector;itk::Point;itk::Vector
+d #pixels=#scalar;#color_pixels;#complex_pixels
+d #array_pixels=#lin_alg_vectors;itk::SymmetricSecondRankTensor
+d #double_array_pixels=itk::Matrix
+d #filters=itk::InPlaceImageFilter
+
+c #filters< itk::Image< @{#pixels}, #dims >, itk::Image< @{#pixels}, #dims > >
+c #filters< itk::Image< #array_pixels< @{#float}, #dims >, #dims >, itk::Image< #array_pixels< @{#float}, #dims >, #dims > >
+c #filters< itk::Image< #double_array_pixels< @{#float}, #dims, #dims >, #dims >, itk::Image< #double_array_pixels< @{#float}, #dims, #dims >, #dims > >
f cpPlugins_Instances/Base.h
+
+d #dims=2;3
+d #float=float;double
+
t itkMesh.h
t itkPointSet.h
t itkBoundingBox.h
t itkMapContainer.h
t itkVectorContainer.h
-c #{itk::PointSet;itk::Mesh}< #float_types, #dims >
+c @{itk::PointSet;itk::Mesh}< #float, #dims >
-d #dims=2;3
--- /dev/null
+f cpPlugins_Instances/ImageFiltersBase.h
+f cpPlugins_Instances/Transforms.h
+i itkContinuousIndex.h
+t itkResampleImageFilter.h
+t itkLinearInterpolateImageFunction.h
+
+c itk::LinearInterpolateImageFunction< itk::Image< #scalars, #dims >, #float_types >
+c itk::ResampleImageFilter< itk::Image< #scalars, #dims >, itk::Image< #scalars, #dims >, float, float >
+c itk::ResampleImageFilter< itk::Image< #scalars, #dims >, itk::Image< #scalars, #dims >, double, double >
+
+d #scalars=#int_types;#uint_types;#float_types
+d #dims=1;2;3;4
-f cpPlugins_Instances/ImageFiltersBase.h
-t itkBinaryThresholdImageFilter.h
+f cpPlugins_Instances/InPlaceImageFiltersBase.h
-c itk::BinaryThresholdImageFilter< itk::Image< #scalars, #dims >, itk::Image< #{unsigned char;#float_types}, #dims > >
+t itkBinaryThresholdImageFilter.h
+t itkUnaryFunctorImageFilter.h
+t itkSimpleDataObjectDecorator.h
-d #scalars=#int_types;#uint_types;#float_types
d #dims=1;2;3;4
+d #int=char;short;int;long
+d #float=float;double
+d #scalar=#int;unsigned #int;#float
+
+c itk::BinaryThresholdImageFilter< itk::Image< @{#scalar}, #dims >, itk::Image< @{#scalar}, #dims > >
--- /dev/null
+f cpPlugins_Instances/Base.h
+
+d #dims=1;2;3;4
+d #float=float;double
+
+t itkTransform.h
+t itkOptimizerParameters.h
+t itkDataObjectDecorator.h
+
+c itk::OptimizerParameters< #float >
+c itk::Transform< #float, #dims, #dims >
+c itk::DataObjectDecorator< itk::Transform< #float, #dims, #dims > >
SUBDIRS(
cpPluginsIO
+ cpPluginsImageFilters
cpPluginsWidgets
)
#include <cpPluginsImageFilters/BinaryContourImageFilter.h>
#include <cpPlugins/Image.h>
-#include <cpPlugins_ITKInstances/ImageFilters.h>
-
-#include <itkProgressReporter.h>
-#include <itkBinaryContourImageFilter.h>
-#include <itkBinaryContourImageFilter.hxx>
+#include <cpPlugins_Instances/DistanceMapFilters.h>
// -------------------------------------------------------------------------
cpPluginsImageFilters::BinaryContourImageFilter::
#include <cpPluginsImageFilters/BinaryThresholdImageFilter.h>
#include <cpPlugins/Image.h>
-#include <cpPlugins_ITKInstances/ImageFilters.h>
-
-#include <itkBinaryThresholdImageFilter.h>
-#include <itkBinaryThresholdImageFilter.hxx>
-#include <itkUnaryFunctorImageFilter.hxx>
+#include <cpPlugins_Instances/ThresholdFilters.h>
// -------------------------------------------------------------------------
cpPluginsImageFilters::BinaryThresholdImageFilter::
this->m_Parameters.ConfigureAsUint( "InsideValue" );
this->m_Parameters.ConfigureAsUint( "OutsideValue" );
- std::vector< std::string > choices;
- choices.push_back( "char" );
- choices.push_back( "short" );
- choices.push_back( "int" );
- choices.push_back( "long" );
- choices.push_back( "float" );
- choices.push_back( "double" );
- choices.push_back( "unsigned char" );
- choices.push_back( "unsigned short" );
- choices.push_back( "unsigned int" );
- choices.push_back( "unsigned long" );
- this->m_Parameters.ConfigureAsChoices( "OutputResolution", choices );
-
this->m_Parameters.SetReal( "LowerThresholdValue", 0 );
this->m_Parameters.SetReal( "UpperThresholdValue", 10000 );
this->m_Parameters.SetReal( "InsideValue", 1 );
_GD0( _TImage* image )
{
if( image != NULL )
- {
- auto choice = this->m_Parameters.GetSelectedChoice( "OutputResolution" );
- if( choice == "char" )
- return( this->_GD1< _TImage, char >( image ) );
- else if( choice == "short" )
- return( this->_GD1< _TImage, short >( image ) );
- else if( choice == "int" )
- return( this->_GD1< _TImage, int >( image ) );
- else if( choice == "long" )
- return( this->_GD1< _TImage, long >( image ) );
- else if( choice == "float" )
- return( this->_GD1< _TImage, float >( image ) );
- else if( choice == "double" )
- return( this->_GD1< _TImage, double >( image ) );
- else if( choice == "unsigned char" )
- return( this->_GD1< _TImage, unsigned char >( image ) );
- else if( choice == "unsigned short" )
- return( this->_GD1< _TImage, unsigned short >( image ) );
- else if( choice == "unsigned int" )
- return( this->_GD1< _TImage, unsigned int >( image ) );
- else if( choice == "unsigned long" )
- return( this->_GD1< _TImage, unsigned long >( image ) );
- else return( "BinaryThresholdImageFilter: no valid output type." );
- }
+ return( this->_GD1< _TImage, unsigned char >( image ) );
else
return(
"ImageFilters::BinaryThresholdImageFilter: No valid input image."
## = Source code =
## ===============
-FILE(GLOB lib_HEADERS_H "*.h")
+#FILE(GLOB lib_HEADERS_H "*.h")
FILE(GLOB lib_HEADERS_HPP "*.hpp")
FILE(GLOB lib_HEADERS_HXX "*.hxx")
FILE(GLOB lib_SOURCES_C "*.c")
FILE(GLOB lib_SOURCES_CPP "*.cpp")
-FILE(GLOB lib_SOURCES_CXX "*.cxx")
+#FILE(GLOB lib_SOURCES_CXX "*.cxx")
+
+SET(
+ lib_HEADERS_H
+ ${CMAKE_CURRENT_SOURCE_DIR}/SignedMaurerDistanceMapImageFilter.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/BinaryThresholdImageFilter.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/BinaryContourImageFilter.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/ResampleImageFilter.h
+ )
+SET(
+ lib_SOURCES_CXX
+ ${CMAKE_CURRENT_SOURCE_DIR}/SignedMaurerDistanceMapImageFilter.cxx
+ ${CMAKE_CURRENT_SOURCE_DIR}/BinaryThresholdImageFilter.cxx
+ ${CMAKE_CURRENT_SOURCE_DIR}/BinaryContourImageFilter.cxx
+ ${CMAKE_CURRENT_SOURCE_DIR}/ResampleImageFilter.cxx
+ )
# ===================================
# = Integrate all source file names =
SET(
target_LIBRARIES
- cpExtensions
cpPlugins
)
ADD_CUSTOM_COMMAND(
OUTPUT ${lib_NAME}_Host.cxx
- DEPENDS cpPlugins_HostCreator ${LIB_HEADERS_H}
+ DEPENDS cpPlugins_HostCreator ${lib_HEADERS_H}
COMMAND cpPlugins_HostCreator ${lib_NAME}_Host.cxx ${lib_HEADERS_H}
)
ADD_LIBRARY(${lib_NAME} SHARED ${lib_NAME}_Host.cxx ${lib_SOURCES})
#include <cpPluginsImageFilters/ResampleImageFilter.h>
#include <cpPlugins/Image.h>
-#include <cpPlugins_ITKInstances/ImageFilters.h>
-
-#include <itkResampleImageFilter.h>
-#include <itkResampleImageFilter.hxx>
-#include <itkImageFunction.hxx>
-#include <itkLinearInterpolateImageFunction.hxx>
-#include <itkImageAlgorithm.hxx>
+#include <cpPlugins_Instances/ResamplingFilters.h>
// -------------------------------------------------------------------------
cpPluginsImageFilters::ResampleImageFilter::
"ImageFilters::ResampleImageFilter: No valid input image."
);
-
// Configure filter
_TFilter* filter = this->_CreateITK< _TFilter >( );
filter->SetInput( image );
#include <cpPluginsImageFilters/SignedMaurerDistanceMapImageFilter.h>
#include <cpPlugins/Image.h>
-#include <cpPlugins_ITKInstances/ImageFilters.h>
-
-#include <itkSignedMaurerDistanceMapImageFilter.h>
-#include <itkSignedMaurerDistanceMapImageFilter.hxx>
-
-#include <itkBinaryThresholdImageFilter.hxx>
-#include <itkImageToImageFilter.hxx>
-#include <itkInPlaceImageFilter.hxx>
-#include <itkUnaryFunctorImageFilter.hxx>
-#include <itkBinaryContourImageFilter.hxx>
-
+#include <cpPlugins_Instances/DistanceMapFilters.h>
// -------------------------------------------------------------------------
cpPluginsImageFilters::SignedMaurerDistanceMapImageFilter::