Skip to content

Commit c70d43e

Browse files
hugtalbotfredroy
andauthored
[image] Apply new factory registration mechanism (#5773)
* Apply new factory registration mechanism * Add test and toolbox from image plugin * Fix #if into #ifdef in initImage * Apply suggestions from code review * Apply suggestions from code review * add == 1 condition * add aanother if * keep only ifdef SOFA_BUILD_TESTS * fix compilation of image with eigenv5 * call registation when executing image_test --------- Co-authored-by: Frederick Roy <froy@lnrobo.com>
1 parent 233b630 commit c70d43e

34 files changed

+526
-406
lines changed

applications/plugins/image/CollisionToCarvingEngine.cpp

Lines changed: 46 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -35,49 +35,47 @@ namespace engine
3535

3636
using namespace defaulttype;
3737

38-
int CollisionToCarvingEngineClass = core::RegisterObject("Filter an image")
39-
.add<CollisionToCarvingEngine<ImageUC,ImageUC > >(true)
40-
.add<CollisionToCarvingEngine<ImageD ,ImageD > >()
41-
42-
.add<CollisionToCarvingEngine<ImageUC,ImageD > >()
43-
44-
.add<CollisionToCarvingEngine<ImageD,ImageUC > >()
45-
.add<CollisionToCarvingEngine<ImageD,ImageB > >()
46-
#if PLUGIN_IMAGE_COMPILE_SET == PLUGIN_IMAGE_COMPILE_SET_FULL
47-
.add<CollisionToCarvingEngine<ImageC ,ImageC > >()
48-
.add<CollisionToCarvingEngine<ImageI ,ImageI > >()
49-
.add<CollisionToCarvingEngine<ImageUI,ImageUI > >()
50-
.add<CollisionToCarvingEngine<ImageS ,ImageS > >()
51-
.add<CollisionToCarvingEngine<ImageUS,ImageUS > >()
52-
.add<CollisionToCarvingEngine<ImageL ,ImageL > >()
53-
.add<CollisionToCarvingEngine<ImageUL,ImageUL > >()
54-
.add<CollisionToCarvingEngine<ImageF ,ImageF > >()
55-
.add<CollisionToCarvingEngine<ImageB ,ImageB > >()
56-
57-
.add<CollisionToCarvingEngine<ImageC ,ImageD > >()
58-
.add<CollisionToCarvingEngine<ImageI ,ImageD > >()
59-
.add<CollisionToCarvingEngine<ImageUI,ImageD > >()
60-
.add<CollisionToCarvingEngine<ImageS ,ImageD > >()
61-
.add<CollisionToCarvingEngine<ImageUS,ImageD > >()
62-
.add<CollisionToCarvingEngine<ImageL ,ImageD > >()
63-
.add<CollisionToCarvingEngine<ImageUL,ImageD > >()
64-
.add<CollisionToCarvingEngine<ImageF ,ImageD > >()
65-
.add<CollisionToCarvingEngine<ImageB ,ImageD > >()
66-
67-
.add<CollisionToCarvingEngine<ImageUS,ImageUC > >()
68-
.add<CollisionToCarvingEngine<ImageUC,ImageUS > >()
69-
.add<CollisionToCarvingEngine<ImageUC,ImageB > >()
70-
.add<CollisionToCarvingEngine<ImageUS,ImageB > >()
38+
void registerCollisionToCarvingEngine(sofa::core::ObjectFactory* factory)
39+
{
40+
factory->registerObjects(sofa::core::ObjectRegistrationData("Filter an image")
41+
.add<CollisionToCarvingEngine<ImageUC,ImageUC > >(true)
42+
.add<CollisionToCarvingEngine<ImageD, ImageD > >()
43+
.add<CollisionToCarvingEngine<ImageUC,ImageD > >()
44+
.add<CollisionToCarvingEngine<ImageD, ImageUC > >()
45+
.add<CollisionToCarvingEngine<ImageD, ImageB > >()
46+
#if PLUGIN_IMAGE_COMPILE_SET == PLUGIN_IMAGE_COMPILE_SET_FULL
47+
.add<CollisionToCarvingEngine<ImageC ,ImageC > >()
48+
.add<CollisionToCarvingEngine<ImageI ,ImageI > >()
49+
.add<CollisionToCarvingEngine<ImageUI,ImageUI > >()
50+
.add<CollisionToCarvingEngine<ImageS ,ImageS > >()
51+
.add<CollisionToCarvingEngine<ImageUS,ImageUS > >()
52+
.add<CollisionToCarvingEngine<ImageL ,ImageL > >()
53+
.add<CollisionToCarvingEngine<ImageUL,ImageUL > >()
54+
.add<CollisionToCarvingEngine<ImageF ,ImageF > >()
55+
.add<CollisionToCarvingEngine<ImageB ,ImageB > >()
56+
57+
.add<CollisionToCarvingEngine<ImageC ,ImageD > >()
58+
.add<CollisionToCarvingEngine<ImageI ,ImageD > >()
59+
.add<CollisionToCarvingEngine<ImageUI,ImageD > >()
60+
.add<CollisionToCarvingEngine<ImageS ,ImageD > >()
61+
.add<CollisionToCarvingEngine<ImageUS,ImageD > >()
62+
.add<CollisionToCarvingEngine<ImageL ,ImageD > >()
63+
.add<CollisionToCarvingEngine<ImageUL,ImageD > >()
64+
.add<CollisionToCarvingEngine<ImageF ,ImageD > >()
65+
.add<CollisionToCarvingEngine<ImageB ,ImageD > >()
66+
67+
.add<CollisionToCarvingEngine<ImageUS,ImageUC > >()
68+
.add<CollisionToCarvingEngine<ImageUC,ImageUS > >()
69+
.add<CollisionToCarvingEngine<ImageUC,ImageB > >()
70+
.add<CollisionToCarvingEngine<ImageUS,ImageB > >()
7171
#endif // PLUGIN_IMAGE_COMPILE_SET == PLUGIN_IMAGE_COMPILE_SET_FULL
72-
;
73-
74-
75-
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUC ,ImageUC >;
76-
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageD ,ImageD >;
77-
78-
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUC ,ImageD >;
72+
);
73+
}
7974

80-
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageD ,ImageUC >;
75+
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUC ,ImageUC >;
76+
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageD ,ImageD >;
77+
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUC ,ImageD >;
78+
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageD ,ImageUC >;
8179
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageD ,ImageB >;
8280

8381
#if PLUGIN_IMAGE_COMPILE_SET == PLUGIN_IMAGE_COMPILE_SET_FULL
@@ -93,18 +91,18 @@ template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageB ,ImageB >;
9391

9492
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageC ,ImageD >;
9593
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageI ,ImageD >;
96-
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUI ,ImageD >;
94+
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUI ,ImageD >;
9795
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageS ,ImageD >;
98-
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUS ,ImageD >;
96+
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUS ,ImageD >;
9997
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageL ,ImageD >;
100-
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUL ,ImageD >;
98+
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUL ,ImageD >;
10199
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageF ,ImageD >;
102100
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageB ,ImageD >;
103101

104-
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUS ,ImageUC >;
105-
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUC ,ImageUS >;
106-
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUC ,ImageB >;
107-
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUS ,ImageB >;
102+
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUS ,ImageUC >;
103+
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUC ,ImageUS >;
104+
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUC ,ImageB >;
105+
template class SOFA_IMAGE_API CollisionToCarvingEngine<ImageUS ,ImageB >;
108106
#endif // PLUGIN_IMAGE_COMPILE_SET == PLUGIN_IMAGE_COMPILE_SET_FULL
109107

110108
} //

applications/plugins/image/DepthMapToMeshEngine.cpp

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,25 @@ namespace engine
3535

3636
using namespace defaulttype;
3737

38-
int DepthMapToMeshEngineClass = core::RegisterObject("Compute a mesh from a depth map image ")
39-
.add<DepthMapToMeshEngine<ImageUC> >(true)
40-
.add<DepthMapToMeshEngine<ImageD> >()
41-
.add<DepthMapToMeshEngine<ImageB> >()
38+
void registerDepthMapToMeshEngine(sofa::core::ObjectFactory* factory)
39+
{
40+
factory->registerObjects(sofa::core::ObjectRegistrationData("Compute a mesh from a depth map image")
41+
.add<DepthMapToMeshEngine<ImageUC> >(true)
42+
.add<DepthMapToMeshEngine<ImageD> >()
43+
.add<DepthMapToMeshEngine<ImageB> >()
4244
#if PLUGIN_IMAGE_COMPILE_SET == PLUGIN_IMAGE_COMPILE_SET_FULL
43-
.add<DepthMapToMeshEngine<ImageC> >()
44-
.add<DepthMapToMeshEngine<ImageI> >()
45-
.add<DepthMapToMeshEngine<ImageUI> >()
46-
.add<DepthMapToMeshEngine<ImageS> >()
47-
.add<DepthMapToMeshEngine<ImageUS> >()
48-
.add<DepthMapToMeshEngine<ImageL> >()
49-
.add<DepthMapToMeshEngine<ImageUL> >()
50-
.add<DepthMapToMeshEngine<ImageF> >()
51-
#endif
52-
;
45+
.add<DepthMapToMeshEngine<ImageC> >()
46+
.add<DepthMapToMeshEngine<ImageI> >()
47+
.add<DepthMapToMeshEngine<ImageUI> >()
48+
.add<DepthMapToMeshEngine<ImageS> >()
49+
.add<DepthMapToMeshEngine<ImageUS> >()
50+
.add<DepthMapToMeshEngine<ImageL> >()
51+
.add<DepthMapToMeshEngine<ImageUL> >()
52+
.add<DepthMapToMeshEngine<ImageF> >()
53+
#endif
54+
);
55+
}
56+
5357

5458
template class SOFA_IMAGE_API DepthMapToMeshEngine<ImageUC>;
5559
template class SOFA_IMAGE_API DepthMapToMeshEngine<ImageD>;

applications/plugins/image/GenerateImage.cpp

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,25 @@ namespace engine
3535

3636
using namespace defaulttype;
3737

38-
int GenerateImageClass = core::RegisterObject("Create an image with custom dimensions")
39-
.add<GenerateImage<ImageUC> >(true)
40-
.add<GenerateImage<ImageD> >()
41-
.add<GenerateImage<ImageB> >()
38+
void registerGenerateImage(sofa::core::ObjectFactory* factory)
39+
{
40+
factory->registerObjects(sofa::core::ObjectRegistrationData("Create an image with custom dimensions")
41+
.add<GenerateImage<ImageUC> >(true)
42+
.add<GenerateImage<ImageD> >()
43+
.add<GenerateImage<ImageB> >()
4244
#if PLUGIN_IMAGE_COMPILE_SET == PLUGIN_IMAGE_COMPILE_SET_FULL
43-
.add<GenerateImage<ImageC> >()
44-
.add<GenerateImage<ImageI> >()
45-
.add<GenerateImage<ImageUI> >()
46-
.add<GenerateImage<ImageS> >()
47-
.add<GenerateImage<ImageUS> >()
48-
.add<GenerateImage<ImageL> >()
49-
.add<GenerateImage<ImageUL> >()
50-
.add<GenerateImage<ImageF> >()
45+
.add<GenerateImage<ImageC> >()
46+
.add<GenerateImage<ImageI> >()
47+
.add<GenerateImage<ImageUI> >()
48+
.add<GenerateImage<ImageS> >()
49+
.add<GenerateImage<ImageUS> >()
50+
.add<GenerateImage<ImageL> >()
51+
.add<GenerateImage<ImageUL> >()
52+
.add<GenerateImage<ImageF> >()
5153
#endif
52-
;
54+
);
55+
}
56+
5357

5458
template class SOFA_IMAGE_API GenerateImage<ImageUC>;
5559
template class SOFA_IMAGE_API GenerateImage<ImageD>;

applications/plugins/image/ImageCoordValuesFromPositions.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,13 @@ namespace engine
3535

3636
using namespace defaulttype;
3737

38-
int ImageCoordValuesFromPositionsClass = core::RegisterObject("Get interpolated coordinates at sample locations in an image with 3 channels")
39-
.add<ImageCoordValuesFromPositions<ImageD> >(true)
40-
.add<ImageCoordValuesFromPositions<ImageF> >()
41-
;
38+
void registerImageCoordValuesFromPositions(sofa::core::ObjectFactory* factory)
39+
{
40+
factory->registerObjects(sofa::core::ObjectRegistrationData("Get interpolated coordinates at sample locations in an image with 3 channels")
41+
.add<ImageCoordValuesFromPositions<ImageD> >(true)
42+
.add<ImageCoordValuesFromPositions<ImageF> >());
43+
}
44+
4245

4346
template class SOFA_IMAGE_API ImageCoordValuesFromPositions<ImageD>;
4447
template class SOFA_IMAGE_API ImageCoordValuesFromPositions<ImageF>;

applications/plugins/image/ImageDataDisplay.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,13 @@ namespace engine
3535

3636
using namespace defaulttype;
3737

38-
int ImageDataDisplayClass = core::RegisterObject("Store custom data in an image. A template input image with non zero voxels (where data will be stored) has to be provided")
39-
.add<ImageDataDisplay<ImageUC, ImageD> >(true)
40-
.add<ImageDataDisplay<ImageD, ImageD> >()
41-
.add<ImageDataDisplay<ImageB, ImageD> >()
42-
;
38+
void registerImageDataDisplay(sofa::core::ObjectFactory* factory)
39+
{
40+
factory->registerObjects(sofa::core::ObjectRegistrationData("Store custom data in an image. A template input image with non zero voxels (where data will be stored) has to be provided")
41+
.add<ImageDataDisplay<ImageUC, ImageD> >(true)
42+
.add<ImageDataDisplay<ImageD, ImageD> >()
43+
.add<ImageDataDisplay<ImageB, ImageD> >());
44+
}
4345

4446
template class SOFA_IMAGE_API ImageDataDisplay<ImageUC, ImageD>;
4547
template class SOFA_IMAGE_API ImageDataDisplay<ImageD, ImageD>;

applications/plugins/image/ImageExporter.cpp

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,21 +37,24 @@ namespace misc
3737

3838
using namespace defaulttype;
3939

40-
int ImageExporterClass = core::RegisterObject("Save an image")
41-
.add<ImageExporter<ImageUC> >(true)
42-
.add<ImageExporter<ImageD> >()
43-
.add<ImageExporter<ImageB> >()
40+
void registerImageExporter(sofa::core::ObjectFactory* factory)
41+
{
42+
factory->registerObjects(sofa::core::ObjectRegistrationData("Save an image")
43+
.add<ImageExporter<ImageUC> >(true)
44+
.add<ImageExporter<ImageD> >()
45+
.add<ImageExporter<ImageB> >()
4446
#if PLUGIN_IMAGE_COMPILE_SET == PLUGIN_IMAGE_COMPILE_SET_FULL
45-
.add<ImageExporter<ImageC> >()
46-
.add<ImageExporter<ImageI> >()
47-
.add<ImageExporter<ImageUI> >()
48-
.add<ImageExporter<ImageS> >()
49-
.add<ImageExporter<ImageUS> >()
50-
.add<ImageExporter<ImageL> >()
51-
.add<ImageExporter<ImageUL> >()
52-
.add<ImageExporter<ImageF> >()
47+
.add<ImageExporter<ImageC> >()
48+
.add<ImageExporter<ImageI> >()
49+
.add<ImageExporter<ImageUI> >()
50+
.add<ImageExporter<ImageS> >()
51+
.add<ImageExporter<ImageUS> >()
52+
.add<ImageExporter<ImageL> >()
53+
.add<ImageExporter<ImageUL> >()
54+
.add<ImageExporter<ImageF> >()
5355
#endif
54-
;
56+
);
57+
}
5558

5659
template class SOFA_IMAGE_API ImageExporter<ImageUC>;
5760
template class SOFA_IMAGE_API ImageExporter<ImageD>;

applications/plugins/image/ImageFilter.cpp

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -35,44 +35,44 @@ namespace engine
3535

3636
using namespace defaulttype;
3737

38-
int ImageFilterClass = core::RegisterObject("Filter an image")
39-
.add<ImageFilter<ImageUC,ImageUC > >(true)
40-
.add<ImageFilter<ImageD ,ImageD > >()
41-
42-
.add<ImageFilter<ImageUC,ImageD > >()
43-
44-
.add<ImageFilter<ImageD,ImageUC > >()
45-
.add<ImageFilter<ImageD,ImageB > >()
46-
.add<ImageFilter<ImageB ,ImageD > >()
47-
.add<ImageFilter<ImageB ,ImageB > >()
38+
void registerImageFilter(sofa::core::ObjectFactory* factory)
39+
{
40+
factory->registerObjects(sofa::core::ObjectRegistrationData("Filter an image")
41+
.add<ImageFilter<ImageUC,ImageUC > >(true)
42+
.add<ImageFilter<ImageD ,ImageD > >()
43+
.add<ImageFilter<ImageUC,ImageD > >()
44+
.add<ImageFilter<ImageD,ImageUC > >()
45+
.add<ImageFilter<ImageD,ImageB > >()
46+
.add<ImageFilter<ImageB ,ImageD > >()
47+
.add<ImageFilter<ImageB ,ImageB > >()
4848

4949
#if PLUGIN_IMAGE_COMPILE_SET == PLUGIN_IMAGE_COMPILE_SET_FULL
50-
.add<ImageFilter<ImageC ,ImageC > >()
51-
.add<ImageFilter<ImageI ,ImageI > >()
52-
.add<ImageFilter<ImageUI,ImageUI > >()
53-
.add<ImageFilter<ImageS ,ImageS > >()
54-
.add<ImageFilter<ImageUS,ImageUS > >()
55-
.add<ImageFilter<ImageL ,ImageL > >()
56-
.add<ImageFilter<ImageUL,ImageUL > >()
57-
.add<ImageFilter<ImageF ,ImageF > >()
58-
59-
.add<ImageFilter<ImageC ,ImageD > >()
60-
.add<ImageFilter<ImageI ,ImageD > >()
61-
.add<ImageFilter<ImageUI,ImageD > >()
62-
.add<ImageFilter<ImageS ,ImageD > >()
63-
.add<ImageFilter<ImageUS,ImageD > >()
64-
.add<ImageFilter<ImageL ,ImageD > >()
65-
.add<ImageFilter<ImageUL,ImageD > >()
66-
.add<ImageFilter<ImageF ,ImageD > >()
67-
68-
.add<ImageFilter<ImageUS,ImageUC > >()
69-
.add<ImageFilter<ImageUC,ImageUS > >()
70-
.add<ImageFilter<ImageUC,ImageB > >()
71-
.add<ImageFilter<ImageUS,ImageB > >()
72-
.add<ImageFilter<ImageS ,ImageB > >()
73-
.add<ImageFilter<ImageS ,ImageUC > >()
50+
.add<ImageFilter<ImageC ,ImageC > >()
51+
.add<ImageFilter<ImageI ,ImageI > >()
52+
.add<ImageFilter<ImageUI,ImageUI > >()
53+
.add<ImageFilter<ImageS ,ImageS > >()
54+
.add<ImageFilter<ImageUS,ImageUS > >()
55+
.add<ImageFilter<ImageL ,ImageL > >()
56+
.add<ImageFilter<ImageUL,ImageUL > >()
57+
.add<ImageFilter<ImageF ,ImageF > >()
58+
.add<ImageFilter<ImageC ,ImageD > >()
59+
.add<ImageFilter<ImageI ,ImageD > >()
60+
.add<ImageFilter<ImageUI,ImageD > >()
61+
.add<ImageFilter<ImageS ,ImageD > >()
62+
.add<ImageFilter<ImageUS,ImageD > >()
63+
.add<ImageFilter<ImageL ,ImageD > >()
64+
.add<ImageFilter<ImageUL,ImageD > >()
65+
.add<ImageFilter<ImageF ,ImageD > >()
66+
.add<ImageFilter<ImageUS,ImageUC > >()
67+
.add<ImageFilter<ImageUC,ImageUS > >()
68+
.add<ImageFilter<ImageUC,ImageB > >()
69+
.add<ImageFilter<ImageUS,ImageB > >()
70+
.add<ImageFilter<ImageS ,ImageB > >()
71+
.add<ImageFilter<ImageS ,ImageUC > >()
7472
#endif
75-
;
73+
);
74+
}
75+
7676

7777
template class SOFA_IMAGE_API ImageFilter<ImageUC ,ImageUC >;
7878
template class SOFA_IMAGE_API ImageFilter<ImageD ,ImageD >;

applications/plugins/image/ImageOperation.cpp

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,24 @@ namespace engine
3535

3636
using namespace defaulttype;
3737

38-
int ImageOperationClass = core::RegisterObject("This class computes an image as an operation between two images")
39-
.add<ImageOperation<ImageUC> >(true)
40-
.add<ImageOperation<ImageD> >()
41-
.add<ImageOperation<ImageB> >()
38+
void registerImageOperation(sofa::core::ObjectFactory* factory)
39+
{
40+
factory->registerObjects(sofa::core::ObjectRegistrationData("This class computes an image as an operation between two images")
41+
.add<ImageOperation<ImageUC> >(true)
42+
.add<ImageOperation<ImageD> >()
43+
.add<ImageOperation<ImageB> >()
4244
#if PLUGIN_IMAGE_COMPILE_SET == PLUGIN_IMAGE_COMPILE_SET_FULL
43-
.add<ImageOperation<ImageC> >()
44-
.add<ImageOperation<ImageI> >()
45-
.add<ImageOperation<ImageUI> >()
46-
.add<ImageOperation<ImageS> >()
47-
.add<ImageOperation<ImageUS> >()
48-
.add<ImageOperation<ImageL> >()
49-
.add<ImageOperation<ImageUL> >()
50-
.add<ImageOperation<ImageF> >()
45+
.add<ImageOperation<ImageC> >()
46+
.add<ImageOperation<ImageI> >()
47+
.add<ImageOperation<ImageUI> >()
48+
.add<ImageOperation<ImageS> >()
49+
.add<ImageOperation<ImageUS> >()
50+
.add<ImageOperation<ImageL> >()
51+
.add<ImageOperation<ImageUL> >()
52+
.add<ImageOperation<ImageF> >()
5153
#endif
52-
;
54+
);
55+
}
5356

5457
template class SOFA_IMAGE_API ImageOperation<ImageUC>;
5558
template class SOFA_IMAGE_API ImageOperation<ImageD>;

0 commit comments

Comments
 (0)