
| Current Path : /usr/include/gdcm-3.0/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //usr/include/gdcm-3.0/gdcmCurve.h |
/*=========================================================================
Program: GDCM (Grassroots DICOM). A DICOM library
Copyright (c) 2006-2011 Mathieu Malaterre
All rights reserved.
See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#ifndef GDCMCURVE_H
#define GDCMCURVE_H
#include "gdcmTypes.h"
#include "gdcmObject.h"
#include <vector>
namespace gdcm
{
class CurveInternal;
class ByteValue;
class DataSet;
class DataElement;
/**
* \brief Curve class to handle element 50xx,3000 Curve Data
* \details
* WARNING: This is deprecated and lastly defined in PS 3.3 - 2004
*
* Examples:
* - GE_DLX-8-MONO2-Multiframe-Jpeg_Lossless.dcm
* - GE_DLX-8-MONO2-Multiframe.dcm
* - gdcmSampleData/Philips_Medical_Images/integris_HV_5000/xa_integris.dcm
* - TOSHIBA-CurveData[1-3].dcm
*/
class GDCM_EXPORT Curve : public Object
{
public:
Curve();
~Curve() override;
void Print(std::ostream &) const override;
void GetAsPoints(float *array) const;
static unsigned int GetNumberOfCurves(DataSet const & ds);
// Update curve data from dataelmenet de:
void Update(const DataElement & de);
void SetGroup(unsigned short group);
unsigned short GetGroup() const;
void SetDimensions(unsigned short dimensions);
unsigned short GetDimensions() const;
void SetNumberOfPoints(unsigned short numberofpoints);
unsigned short GetNumberOfPoints() const;
void SetTypeOfData(const char *typeofdata);
const char *GetTypeOfData() const;
// See PS 3.3 - 2004 - C.10.2.1.1 Type of data
const char *GetTypeOfDataDescription() const;
void SetCurveDescription(const char *curvedescription);
void SetDataValueRepresentation(unsigned short datavaluerepresentation);
unsigned short GetDataValueRepresentation() const;
void SetCurveDataDescriptor(const uint16_t * values, size_t num);
std::vector<unsigned short> const &GetCurveDataDescriptor() const;
void SetCoordinateStartValue( unsigned short v );
void SetCoordinateStepValue( unsigned short v );
void SetCurve(const char *array, unsigned int length);
bool IsEmpty() const;
void Decode(std::istream &is, std::ostream &os);
Curve(Curve const &ov);
private:
double ComputeValueFromStartAndStep(unsigned int idx) const;
CurveInternal *Internal;
};
} // end namespace gdcm
#endif //GDCMCURVE_H