]> Creatis software - cpPlugins.git/blob - plugins/GenericPlugins/JoinBoundingBoxes.cxx
d3bdfb5021f5a1c55739823f0478ead4c23fde7f
[cpPlugins.git] / plugins / GenericPlugins / JoinBoundingBoxes.cxx
1 #include <GenericPlugins/JoinBoundingBoxes.h>
2 #include <cpPlugins/Pipeline/DataObject.h>
3 #include <cpInstances/DataObjects/BoundingBox.h>
4
5 // -------------------------------------------------------------------------
6 cpPlugins_GenericPlugins::JoinBoundingBoxes::
7 JoinBoundingBoxes( )
8   : Superclass( )
9 {
10   this->_ConfigureInput( "Inputs", true, true );
11   this->_ConfigureOutput< cpInstances::DataObjects::BoundingBox >( "Output" );
12 }
13
14 // -------------------------------------------------------------------------
15 cpPlugins_GenericPlugins::JoinBoundingBoxes::
16 ~JoinBoundingBoxes( )
17 {
18 }
19
20 // -------------------------------------------------------------------------
21 void cpPlugins_GenericPlugins::JoinBoundingBoxes::
22 _GenerateData( )
23 {
24   typedef cpPlugins::Pipeline::DataObject _TDO;
25   typedef cpInstances::DataObjects::BoundingBox _TBB;
26
27   auto out = dynamic_cast< _TBB* >( this->GetOutput( "Output" ) );
28   unsigned int nInputs = this->GetInputSize( "Inputs" );
29   for( unsigned int i = 0; i < nInputs; ++i )
30   {
31     auto in = dynamic_cast< _TDO* >( this->GetInput( "Inputs", i ) );
32     if( i > 0 )
33     {
34       _TBB::Pointer bb = _TBB::New( );
35       bb->SetDataObject( in );
36       out->Blend( bb );
37     }
38     else
39       out->SetDataObject( in );
40
41   } // rof
42 }
43
44 // eof - $RCSfile$