~ubuntu-branches/ubuntu/precise/ginkgocadx/precise

« back to all changes in this revision

Viewing changes to src/cadxcore/api/icontextoestudio.cpp

  • Committer: Package Import Robot
  • Author(s): Andreas Tille
  • Date: 2011-09-09 08:39:26 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: package-import@ubuntu.com-20110909083926-iktecd132cnku5cd
Tags: 2.5.4.0~rc-1
New upstream version (patches were applied)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
2
 *
3
 
 *  $Id: icontextoestudio.cpp 3995 2011-07-13 18:24:42Z tovar $
 
3
 *  $Id: icontextoestudio.cpp 4076 2011-08-11 06:37:52Z carlos $
4
4
 *  Ginkgo CADx Project
5
5
 *
6
6
 *  Copyright 2008-10 MetaEmotion S.L. All rights reserved.
45
45
#include <vtkInformationVector.h>
46
46
#include <vtkUnsignedCharArray.h>
47
47
#include <vtkPointData.h>
 
48
#include <vtkCharArray.h>
48
49
 
49
50
#define TAG_WIDGETS                                         0xb
50
51
#define UID_TAGS_PRIVADOS_COMUNES        "100"
1198
1199
        UnLock("CrearMapaValoracion");
1199
1200
}
1200
1201
 
 
1202
void GNC::GCS::IContextoEstudio::CrearMapaValoracionChar(vtkSmartPointer<vtkImageData>& pMapa, GnkPtr<GIL::DICOM::TipoPrivateTags> pTagsPrivados, const unsigned char tag, const int indice, char valorInicial)
 
1203
{
 
1204
        Lock("CrearMapaValoracion");
 
1205
        //se crea la imagen
 
1206
        if (pMapa == NULL) {
 
1207
                pMapa = vtkSmartPointer<vtkImageData>::New();
 
1208
 
 
1209
                double spacing[3] = {1.0f,1.0f,1.0f};
 
1210
                double origin[3] = {0.0f,0.0f,0.0f};
 
1211
                int dimensions[3] = {0.0f,0.0f,0.0f};
 
1212
                GetSpacing(indice,spacing[0],spacing[1],spacing[2]);
 
1213
                GetOrigin(indice,origin[0],origin[1],origin[2]);
 
1214
                GetDimensionsImagen(indice,dimensions[0],dimensions[1], dimensions[2]);
 
1215
 
 
1216
                //se inicializan valores de dimensions, scalartype...
 
1217
                pMapa->SetDimensions(dimensions[0],dimensions[1],1);
 
1218
                pMapa->SetScalarTypeToChar();
 
1219
                pMapa->SetNumberOfScalarComponents(1);
 
1220
                pMapa->SetSpacing(spacing[0],spacing[1],spacing[2]);
 
1221
                pMapa->SetOrigin(origin[0],origin[1],origin[2]);
 
1222
 
 
1223
                GIL::DICOM::TagPrivadoUndefined* pTagPrivado = pTagsPrivados->GetTagUndefined(tag);
 
1224
                if(pTagPrivado == NULL) {
 
1225
                        const unsigned int size = dimensions[0] * dimensions[1];
 
1226
                        pTagPrivado = pTagsPrivados->NewTagUndefined(tag,size);
 
1227
                        //se hace un fill 0
 
1228
                        const char* fin = size + (char*)pTagPrivado->GetValor();
 
1229
                        for( char* pData = (char*)pTagPrivado->GetValor(); pData < fin; ++pData)
 
1230
                        {
 
1231
                                (*pData) = valorInicial;
 
1232
                        }
 
1233
                }
 
1234
 
 
1235
                vtkSmartPointer<vtkCharArray> dataImagen = vtkSmartPointer<vtkCharArray>::New();
 
1236
                dataImagen->SetNumberOfComponents(1);
 
1237
                unsigned int size = pMapa->GetDimensions()[0] * pMapa->GetDimensions()[1];
 
1238
                dataImagen->SetArray((char*)pTagPrivado->GetValor(),size,1);
 
1239
 
 
1240
                pMapa->GetPointData()->SetScalars(dataImagen);
 
1241
        }
 
1242
        UnLock("CrearMapaValoracion");
 
1243
}
 
1244
 
1201
1245
GNC::GCS::IContextoEstudioReferido::IContextoEstudioReferido()
1202
1246
{
1203
1247
        GTRACE(">> IContextoEstudio::IContextoEstudioReferido() " << this);