[Aqsis-commits] CVS: renderer/render ri.cpp,1.188,1.189
Brought to you by:
ltatkinson,
pgregory
From: Matth?us C. <mw_...@us...> - 2003-05-27 16:12:34
|
Update of /cvsroot/aqsis/renderer/render In directory sc8-pr-cvs1:/tmp/cvs-serv4885 Modified Files: ri.cpp Log Message: New error handling stuff Index: ri.cpp =================================================================== RCS file: /cvsroot/aqsis/renderer/render/ri.cpp,v retrieving revision 1.188 retrieving revision 1.189 diff -C2 -r1.188 -r1.189 *** ri.cpp 24 May 2003 17:59:45 -0000 1.188 --- ri.cpp 27 May 2003 16:12:31 -0000 1.189 *************** *** 68,71 **** --- 68,72 ---- #include "ilog.h" #include "share.h" + #include "aqerror.h" using namespace Aqsis; *************** *** 265,268 **** --- 266,314 ---- //---------------------------------------------------------------------- + // CqRangeCheckCallback implentation + // Use this with CheckMinMax + // + class CqLogRangeCheckCallback : public CqRangeCheckCallback + { + public: + CqLogRangeCheckCallback( IqLog* str ) + { + m_log = str; + } + + void set( const char* name, const char* priority ) + { + m_name = name; + m_prio = priority; + } + + virtual void operator()( int res ) + { + switch( res ) + { + case CqRangeCheckCallback::UPPER_BOUND_HIT: + { + m_log->log( m_prio, "Invalid Value for %s. Value exceeded upper limit", m_name ); + } + + case CqRangeCheckCallback::LOWER_BOUND_HIT: + { + m_log->log( m_prio, "Invalid Value for %s. Value is below lower limit", m_name ); + } + + default: + ; + } + } + + + private: + IqLog* m_log; + const char* m_name; + const char* m_prio; + }; + + + //---------------------------------------------------------------------- // RiDeclare // Declare a new variable to be recognised by the system. *************** *** 620,640 **** RtVoid RiDepthOfField( RtFloat fstop, RtFloat focallength, RtFloat focaldistance ) { ! if( fstop < 0 ) { ! QGetRenderContext() ->Logger()->warn( "Negative fstop: %f, DepthOfField ignored", fstop ); ! return; } ! if( focallength < 0 ) { ! QGetRenderContext() ->Logger()->warn( "Negative focallength: %f, DepthOfField ignored", focallength ); ! return; } ! ! if( focaldistance < 0 ) { ! QGetRenderContext() ->Logger()->warn( "Negative focaldistance: %f, DepthOfField ignored", focaldistance ); return; } QGetRenderContext() ->optCurrent().GetFloatOptionWrite( "System", "DepthOfField" ) [ 0 ] = fstop ; QGetRenderContext() ->optCurrent().GetFloatOptionWrite( "System", "DepthOfField" ) [ 1 ] = focallength ; --- 666,697 ---- RtVoid RiDepthOfField( RtFloat fstop, RtFloat focallength, RtFloat focaldistance ) { ! CqLogRangeCheckCallback rc( QGetRenderContext() ->Logger() ); ! ! bool valid = true; ! ! rc.set( "fstop", "WARN" ); ! if( !CheckMinMax( fstop, 0.0f, RI_INFINITY, &rc ) ) { ! valid = false; } ! rc.set( "focallength", "WARN" ); ! if( !CheckMinMax( focallength, 0.0f, RI_INFINITY, &rc ) ) { ! valid = false; } ! ! rc.set( "focaldistance", "WARN" ); ! if( !CheckMinMax( focaldistance, 0.0f, RI_INFINITY, &rc ) ) { ! valid = false; ! } ! ! if( !valid ) ! { ! QGetRenderContext() ->Logger()->warn( "Invalid DepthOfField, DepthOfField ignored" ); return; } + QGetRenderContext() ->optCurrent().GetFloatOptionWrite( "System", "DepthOfField" ) [ 0 ] = fstop ; QGetRenderContext() ->optCurrent().GetFloatOptionWrite( "System", "DepthOfField" ) [ 1 ] = focallength ; |