[OpenWalnut-Dev] [OWci] r5271: [ADD #83] added new handled data types

Alexander Wiebel wiebel_openwalnut at dergrosse.de
Tue Oct 4 20:58:02 CEST 2011


Hi
> Nice. But please be so kind to check whether marching cubes now supports ALL integral/float types we support and please add them if missing.

It support more than we can load from from NIfTI at the moment. One can
argue whether this is enough. One could aim at supporting all sensible
types in WDataHandlerEnums, e.g. all marked with # in the following list. However we do not have data for every thing so it will be hard to test if it works at the moment. If it is of interest I can implement a module than can produce test data in an arbitrary data type.

    W_DT_NONE            =        0,
    W_DT_UNKNOWN         =        0,     /* what it says, dude           */
    W_DT_BINARY          =        1,     /* binary (1 bit/voxel)         */
#    W_DT_UNSIGNED_CHAR   =        2,     /* unsigned char (8 bits/voxel) */
#    W_DT_SIGNED_SHORT    =        4,     /* signed short (16 bits/voxel) */
#    W_DT_SIGNED_INT      =        8,     /* signed int (32 bits/voxel)   */
#    W_DT_FLOAT           =       16,     /* float (32 bits/voxel)        */
    W_DT_COMPLEX         =       32,     /* complex (64 bits/voxel)      */
#    W_DT_DOUBLE          =       64,     /* double (64 bits/voxel)       */
    W_DT_RGB             =      128,     /* RGB triple (24 bits/voxel)   */
    W_DT_ALL             =      255,     /* not very useful (?)          */
#    W_DT_INT8            =      256,     /* signed char (8 bits)         */
#    W_DT_UINT16          =      512,     /* unsigned short (16 bits)     */
#    W_DT_UINT8           =        2,     /* alias for unsigned char (8 bits/voxel) */
#    W_DT_INT16           =        4,     /* unsigned short (16 bits) alias name for W_DT_SIGNED_SHORT */
#    W_DT_UINT32          =      768,     /* unsigned int (32 bits)       */
#    W_DT_INT64           =     1024,     /* long long (64 bits)          */
#    W_DT_UINT64          =     1280,     /* unsigned long long (64 bits) */
#    W_DT_FLOAT128        =     1536,     /* long double (128 bits)       */
    W_DT_COMPLEX128      =     1792,     /* double pair (128 bits)       */
    W_DT_COMPLEX256      =     2048,     /* long double pair (256 bits)  */
    W_DT_RGBA32          =     2304      /* 4 byte RGBA (32 bits/voxel)  */


Cheers
Alex


> Thank You
> Sebastian
> 
> On Tue, 04 Oct 2011, Alexander Wiebel wrote:
> 
>> *Branch default*
>> [ADD #83] added new handled data types
>>
>> changeset 5271:ab06c7fef65e in /srv/hg/ow (Tue Oct 04 17:31:28 2011 +0200):
>>
>> http://www.openwalnut.org/projects/openwalnut/repository/revisions/5271
>>
>> diffstat:
>>
>>  src/modules/data/WMData.cpp                   |   1 +
>>  src/modules/marchingCubes/WMMarchingCubes.cpp |  44 +++++++++++++++++++++++++++
>>  2 files changed, 45 insertions(+), 0 deletions(-)
>>
>> diffs (72 lines):
>>
>> diff -r 738aff79abae -r ab06c7fef65e src/modules/data/WMData.cpp
>> --- a/src/modules/data/WMData.cpp	Mon Oct 03 13:39:21 2011 +0200
>> +++ b/src/modules/data/WMData.cpp	Tue Oct 04 17:31:28 2011 +0200
>> @@ -223,6 +223,7 @@
>>                      case W_DT_UNSIGNED_CHAR:
>>                      case W_DT_INT16:
>>                      case W_DT_UINT16:
>> +                    case W_DT_UINT32:
>>                      case W_DT_SIGNED_INT:
>>                          m_dataSet->getTexture()->colormap()->set(
>>                              m_dataSet->getTexture()->colormap()->get().newSelector( WItemSelector::IndexList( 1, 0 ) )
>> diff -r 738aff79abae -r ab06c7fef65e src/modules/marchingCubes/WMMarchingCubes.cpp
>> --- a/src/modules/marchingCubes/WMMarchingCubes.cpp	Mon Oct 03 13:39:21 2011 +0200
>> +++ b/src/modules/marchingCubes/WMMarchingCubes.cpp	Tue Oct 04 17:31:28 2011 +0200
>> @@ -283,6 +283,28 @@
>>              }
>>              break;
>>          }
>> +        case W_DT_INT8:
>> +        {
>> +            boost::shared_ptr< WValueSet< int8_t > > vals;
>> +            vals =  boost::shared_dynamic_cast< WValueSet< int8_t > >( ( *m_dataSet ).getValueSet() );
>> +            WAssert( vals, "Data type and data type indicator must fit." );
>> +            if( m_useMarchingLego->get( true ) )
>> +            {
>> +                m_triMesh = mlAlgo.generateSurface( m_grid->getNbCoordsX(), m_grid->getNbCoordsY(), m_grid->getNbCoordsZ(),
>> +                                                    m_grid->getTransformationMatrix(),
>> +                                                    vals->rawDataVectorPointer(),
>> +                                                    isoValue );
>> +            }
>> +            else
>> +            {
>> +                m_triMesh = mcAlgo.generateSurface( m_grid->getNbCoordsX(), m_grid->getNbCoordsY(), m_grid->getNbCoordsZ(),
>> +                                                    m_grid->getTransformationMatrix(),
>> +                                                    vals->rawDataVectorPointer(),
>> +                                                    isoValue,
>> +                                                    m_progress );
>> +            }
>> +            break;
>> +        }
>>          case W_DT_UINT16:
>>          {
>>              boost::shared_ptr< WValueSet< uint16_t > > vals;
>> @@ -305,6 +327,28 @@
>>              }
>>              break;
>>          }
>> +        case W_DT_UINT32:
>> +        {
>> +            boost::shared_ptr< WValueSet< uint32_t > > vals;
>> +            vals =  boost::shared_dynamic_cast< WValueSet< uint32_t > >( ( *m_dataSet ).getValueSet() );
>> +            WAssert( vals, "Data type and data type indicator must fit." );
>> +            if( m_useMarchingLego->get( true ) )
>> +            {
>> +                m_triMesh = mlAlgo.generateSurface( m_grid->getNbCoordsX(), m_grid->getNbCoordsY(), m_grid->getNbCoordsZ(),
>> +                                                    m_grid->getTransformationMatrix(),
>> +                                                    vals->rawDataVectorPointer(),
>> +                                                    isoValue );
>> +            }
>> +            else
>> +            {
>> +                m_triMesh = mcAlgo.generateSurface( m_grid->getNbCoordsX(), m_grid->getNbCoordsY(), m_grid->getNbCoordsZ(),
>> +                                                    m_grid->getTransformationMatrix(),
>> +                                                    vals->rawDataVectorPointer(),
>> +                                                    isoValue,
>> +                                                    m_progress );
>> +            }
>> +            break;
>> +        }
>>          case W_DT_SIGNED_INT:
>>          {
>>              boost::shared_ptr< WValueSet< int32_t > > vals;
>> _______________________________________________
>> All-openwalnut-commits mailing list
>> All-openwalnut-commits at lists.informatik.uni-leipzig.de
>> http://lists.informatik.uni-leipzig.de/mailman/listinfo/all-openwalnut-commits
>>
> 



More information about the OpenWalnut-Dev mailing list