

Public Types | |
| typedef LookupTablePropertyDeserializer | Self |
| typedef BasePropertyDeserializer | Superclass |
| typedef itk::SmartPointer< Self > | Pointer |
| typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
| virtual const char * | GetClassName () const |
| virtual BaseProperty::Pointer | Deserialize (TiXmlElement *element) |
Static Public Member Functions | |
| static Pointer | New () |
Protected Member Functions | |
| LookupTablePropertyDeserializer () | |
| virtual | ~LookupTablePropertyDeserializer () |
Definition at line 30 of file mitkLookupTablePropertyDeserializer.cpp.
| typedef itk::SmartPointer<const Self> mitk::LookupTablePropertyDeserializer::ConstPointer |
Reimplemented from mitk::BasePropertyDeserializer.
Definition at line 34 of file mitkLookupTablePropertyDeserializer.cpp.
| typedef itk::SmartPointer<Self> mitk::LookupTablePropertyDeserializer::Pointer |
Reimplemented from mitk::BasePropertyDeserializer.
Definition at line 34 of file mitkLookupTablePropertyDeserializer.cpp.
Reimplemented from mitk::BasePropertyDeserializer.
Definition at line 34 of file mitkLookupTablePropertyDeserializer.cpp.
Reimplemented from mitk::BasePropertyDeserializer.
Definition at line 34 of file mitkLookupTablePropertyDeserializer.cpp.
| mitk::LookupTablePropertyDeserializer::LookupTablePropertyDeserializer | ( | ) | [inline, protected] |
Definition at line 147 of file mitkLookupTablePropertyDeserializer.cpp.
{}
| virtual mitk::LookupTablePropertyDeserializer::~LookupTablePropertyDeserializer | ( | ) | [inline, protected, virtual] |
Definition at line 148 of file mitkLookupTablePropertyDeserializer.cpp.
{}
| virtual BaseProperty::Pointer mitk::LookupTablePropertyDeserializer::Deserialize | ( | TiXmlElement * | element ) | [inline, virtual] |
Reimplemented from mitk::BasePropertyDeserializer.
Definition at line 37 of file mitkLookupTablePropertyDeserializer.cpp.
References TiXmlNode::FirstChildElement(), mitk::LookupTableProperty::New(), mitk::LookupTable::New(), TiXmlNode::NextSiblingElement(), TiXmlElement::QueryDoubleAttribute(), TiXmlElement::QueryIntAttribute(), and TIXML_SUCCESS.
{
if (!element) return NULL;
#if ( (VTK_MAJOR_VERSION < 5) && (VTK_MINOR_VERSION < 4) )
typedef float OUR_VTK_FLOAT_TYPE;
float range[2];
float rgba[4];
#else
typedef double OUR_VTK_FLOAT_TYPE;
double range[2];
double rgba[4];
#endif
double d; // bec. of tinyXML's interface that takes a pointer to float or double...
vtkLookupTable* lut = vtkLookupTable::New();
int numberOfColors;
int scale;
int ramp; // hope the int values don't change betw. vtk versions...
if ( element->QueryIntAttribute( "NumberOfColors", &numberOfColors ) == TIXML_SUCCESS )
{
lut->SetNumberOfTableValues( numberOfColors );
}
else
return NULL;
if ( element->QueryIntAttribute( "Scale", &scale ) == TIXML_SUCCESS )
{
lut->SetScale( scale );
}
else
return NULL;
if ( element->QueryIntAttribute( "Ramp", &ramp ) == TIXML_SUCCESS )
{
lut->SetRamp( ramp );
}
else
return NULL;
TiXmlElement* child = element->FirstChildElement("HueRange");
if (child)
{
if ( child->QueryDoubleAttribute( "min", &d ) != TIXML_SUCCESS )
return NULL;
range[0] = static_cast<OUR_VTK_FLOAT_TYPE>(d);
if ( child->QueryDoubleAttribute( "max", &d ) != TIXML_SUCCESS )
return NULL;
range[1] = static_cast<OUR_VTK_FLOAT_TYPE>(d);
lut->SetHueRange( range );
}
child = element->FirstChildElement("ValueRange");
if (child)
{
if ( child->QueryDoubleAttribute( "min", &d ) != TIXML_SUCCESS ) return NULL; range[0] = static_cast<OUR_VTK_FLOAT_TYPE>(d);
if ( child->QueryDoubleAttribute( "max", &d ) != TIXML_SUCCESS ) return NULL; range[1] = static_cast<OUR_VTK_FLOAT_TYPE>(d);
lut->SetValueRange( range );
}
child = element->FirstChildElement("SaturationRange");
if (child)
{
if ( child->QueryDoubleAttribute( "min", &d ) != TIXML_SUCCESS ) return NULL; range[0] = static_cast<OUR_VTK_FLOAT_TYPE>(d);
if ( child->QueryDoubleAttribute( "max", &d ) != TIXML_SUCCESS ) return NULL; range[1] = static_cast<OUR_VTK_FLOAT_TYPE>(d);
lut->SetSaturationRange( range );
}
child = element->FirstChildElement("AlphaRange");
if (child)
{
if ( child->QueryDoubleAttribute( "min", &d ) != TIXML_SUCCESS ) return NULL; range[0] = static_cast<OUR_VTK_FLOAT_TYPE>(d);
if ( child->QueryDoubleAttribute( "max", &d ) != TIXML_SUCCESS ) return NULL; range[1] = static_cast<OUR_VTK_FLOAT_TYPE>(d);
lut->SetAlphaRange( range );
}
child = element->FirstChildElement("TableRange");
if (child)
{
if ( child->QueryDoubleAttribute( "min", &d ) != TIXML_SUCCESS ) return NULL; range[0] = static_cast<OUR_VTK_FLOAT_TYPE>(d);
if ( child->QueryDoubleAttribute( "max", &d ) != TIXML_SUCCESS ) return NULL; range[1] = static_cast<OUR_VTK_FLOAT_TYPE>(d);
lut->SetTableRange( range );
}
child = element->FirstChildElement("Table");
if (child)
{
unsigned int index(0);
for( TiXmlElement* grandChild = child->FirstChildElement("RgbaColor"); grandChild; grandChild = grandChild->NextSiblingElement("RgbaColor"))
{
if ( grandChild->QueryDoubleAttribute("R", &d) != TIXML_SUCCESS ) return NULL; rgba[0] = static_cast<OUR_VTK_FLOAT_TYPE>(d);
if ( grandChild->QueryDoubleAttribute("G", &d) != TIXML_SUCCESS ) return NULL; rgba[1] = static_cast<OUR_VTK_FLOAT_TYPE>(d);
if ( grandChild->QueryDoubleAttribute("B", &d) != TIXML_SUCCESS ) return NULL; rgba[2] = static_cast<OUR_VTK_FLOAT_TYPE>(d);
if ( grandChild->QueryDoubleAttribute("A", &d) != TIXML_SUCCESS ) return NULL; rgba[3] = static_cast<OUR_VTK_FLOAT_TYPE>(d);
lut->SetTableValue( index, rgba );
++index;
}
}
LookupTable::Pointer mitkLut = LookupTable::New();
mitkLut->SetVtkLookupTable( lut );
lut->Delete();
return LookupTableProperty::New(mitkLut).GetPointer();
}
| virtual const char* mitk::LookupTablePropertyDeserializer::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::BasePropertyDeserializer.
| static Pointer mitk::LookupTablePropertyDeserializer::New | ( | ) | [static] |
1.7.2