diff options
Diffstat (limited to 'kpovmodeler/pmmedia.h')
-rw-r--r-- | kpovmodeler/pmmedia.h | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/kpovmodeler/pmmedia.h b/kpovmodeler/pmmedia.h new file mode 100644 index 00000000..3bf6705b --- /dev/null +++ b/kpovmodeler/pmmedia.h @@ -0,0 +1,149 @@ +//-*-C++-*- +/* +************************************************************************** + description + -------------------- + copyright : (C) 2001 by Luis Carvalho + email : lpassos@mail.telepac.pt +************************************************************************** + +************************************************************************** +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +* * +**************************************************************************/ + + +#ifndef PMMEDIA_H +#define PMMEDIA_H + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "pmtexturebase.h" +#include "pmcolor.h" + +/** + * Class for povray medias + */ +class PMMedia : public PMTextureBase +{ + typedef PMTextureBase Base; +public: + /** + * Creates an PMMedia + */ + PMMedia( PMPart* part ); + /** + * Copy constructor + */ + PMMedia( const PMMedia& m ); + /** + * Deletes the object + */ + virtual ~PMMedia( ); + + /** */ + virtual PMObject* copy( ) const { return new PMMedia( *this ); } + /** */ + virtual QString description( ) const; + + /** */ + virtual PMMetaObject* metaObject( ) const; + /** */ + virtual void cleanUp( ) const; + + /** */ + virtual void serialize( QDomElement& e, QDomDocument& doc ) const; + /** */ + virtual void readAttributes( const PMXMLHelper& h ); + + /** + * Returns a new @ref PMMediaEdit + */ + virtual PMDialogEditBase* editWidget( QWidget* parent ) const; + /** */ + virtual QString pixmap( ) const { return QString( "pmmedia" ); } + + /** */ + virtual void restoreMemento( PMMemento* s ); + + int method( ) const { return m_method; } + int intervals( ) const { return m_intervals; } + int samplesMin( ) const { return m_samplesMin; } + int samplesMax( ) const { return m_samplesMax; } + double confidence( ) const { return m_confidence; } + double variance( ) const { return m_variance; } + double ratio( ) const { return m_ratio; } + int aaLevel( ) const { return m_aaLevel; } + double aaThreshold( ) const { return m_aaThreshold; } + PMColor absorption( ) const { return m_absorption; } + PMColor emission( ) const { return m_emission; } + int scatteringType( ) const { return m_scatteringType; } + PMColor scatteringColor( ) const { return m_scatteringColor; } + double scatteringEccentricity( ) const { return m_scatteringEccentricity; } + double scatteringExtinction( ) const { return m_scatteringExtinction; } + bool isAbsorptionEnabled( ) const { return m_enableAbsorption; } + bool isEmissionEnabled( ) const { return m_enableEmission; } + bool isScatteringEnabled( ) const { return m_enableScattering; } + + void setMethod( int c ); + void setIntervals( int c ); + void setSamplesMin( int c ); + void setSamplesMax( int c ); + void setAALevel( int c ); + void setConfidence( double c ); + void setVariance( double c ); + void setRatio( double c ); + void setAAThreshold( double c ); + void setAbsorption( const PMColor& c ); + void setEmission( const PMColor& c ); + void setScatteringType( int c ); + void setScatteringColor( const PMColor& c ); + void setScatteringEccentricity( double c ); + void setScatteringExtinction( double c ); + void enableAbsorption( bool c ); + void enableEmission( bool c ); + void enableScattering( bool c ); + +private: + /** + * IDs for @ref PMMementoData + */ + enum PMMediaMementoID { PMMethodID, PMIntervalsID, PMSamplesMinID, PMSamplesMaxID, + PMConfidenceID, PMVarianceID, PMRatioID, + PMAALevelID, PMAAThresholdID, PMAbsorptionID, PMEmissionID, + PMScatteringTypeID, PMScatteringColorID, + PMScatteringEccentricityID, PMScatteringExtinctionID, + PMEnableAbsorptionID, PMEnableEmissionID, + PMEnableScatteringID }; + + int m_method; + int m_intervals; + int m_samplesMin; + int m_samplesMax; + double m_confidence; + double m_variance; + double m_ratio; + int m_aaLevel; + double m_aaThreshold; + PMColor m_absorption; + PMColor m_emission; + int m_scatteringType; + PMColor m_scatteringColor; + double m_scatteringEccentricity; + double m_scatteringExtinction; + + bool m_enableAbsorption; + bool m_enableEmission; + bool m_enableScattering; + + static PMMetaObject* s_pMetaObject; +}; + + +#endif |