valueToString method
Implementation
void valueToString( ClipParam param, MathValue value, ParamString real, ParamString imag ){
switch( param.mode() & ClipGlobal.modeMask ){
case ClipGlobal.modeEComplex:
case ClipGlobal.modeFComplex:
case ClipGlobal.modeGComplex:
if( ClipMath.isZero( value.imag() ) ){
real.set( _floatToString( param, value.real() ) );
imag.set( "" );
} else if( ClipMath.isZero( value.real() ) ){
real.set( "" );
imag.set( "${_floatToString( param, value.imag() )}i" );
} else {
real.set( _floatToString( param, value.real() ) );
imag.set( (value.imag() > 0.0) ? "+" : "" );
imag.add( "${_floatToString( param, value.imag() )}i" );
}
break;
case ClipGlobal.modeEFloat:
case ClipGlobal.modeFFloat:
case ClipGlobal.modeGFloat:
real.set( _floatToString( param, value.real() ) );
imag.set( "" );
break;
case ClipGlobal.modeMFract:
if( (value.denom() != 0) && (ClipMath.div( value.num(), value.denom() ) != 0) ){
if( ClipMath.mod( value.num(), value.denom() ) != 0 ){
real.set( value.fractMinus() ? "-" : "" );
real.add( "${ClipMath.div( value.num(), value.denom() ).toInt()}" );
real.add( ClipGlobal.charFract );
real.add( "${ClipMath.mod( value.num(), value.denom() ).toInt()}" );
real.add( ClipGlobal.charFract );
real.add( "${value.denom().toInt()}" );
} else {
real.set( value.fractMinus() ? "-" : "" );
real.add( "${ClipMath.div( value.num(), value.denom() ).toInt()}" );
}
imag.set( "" );
break;
}
// そのまま下に流す
continue caseClipModeIFract;
caseClipModeIFract:
case ClipGlobal.modeIFract:
if( value.denom() == 0 ){
real.set( "${value.toFloat()}" );
} else if( value.denom() == 1 ){
real.set( value.fractMinus() ? "-" : "" );
real.add( "${value.num().toInt()}" );
} else {
real.set( value.fractMinus() ? "-" : "" );
real.add( "${value.num().toInt()}" );
real.add( ClipGlobal.charFract );
real.add( "${value.denom().toInt()}" );
}
imag.set( "" );
break;
case ClipGlobal.modeHTime:
real.set( value.timeMinus() ? "-" : "" );
real.add( ((value.hour() < 10.0) ? "0" : "") + ClipMath.floatToString( value.hour(), ClipGlobal.defPrec ) );
imag.set( "" );
break;
case ClipGlobal.modeMTime:
if( ClipMath.toInt( value.hour() ) != 0 ){
real.set( value.timeMinus() ? "-" : "" );
real.add( ((value.hour() < 10.0) ? "0" : "") + ClipMath.floatToString( ClipMath.toInt( value.hour() ) ) );
real.add( ":" );
real.add( ((value.min () < 10.0) ? "0" : "") + ClipMath.floatToString( value.min(), ClipGlobal.defPrec ) );
} else {
real.set( value.timeMinus() ? "-" : "" );
real.add( ((value.min() < 10.0) ? "0" : "") + ClipMath.floatToString( value.min(), ClipGlobal.defPrec ) );
}
imag.set( "" );
break;
case ClipGlobal.modeSTime:
if( ClipMath.toInt( value.hour() ) != 0 ){
real.set( value.timeMinus() ? "-" : "" );
real.add( ((value.hour() < 10.0) ? "0" : "") + ClipMath.floatToString( ClipMath.toInt( value.hour() ) ) );
real.add( ":" );
real.add( ((value.min () < 10.0) ? "0" : "") + ClipMath.floatToString( ClipMath.toInt( value.min() ) ) );
real.add( ":" );
real.add( ((value.sec () < 10.0) ? "0" : "") + ClipMath.floatToString( value.sec(), ClipGlobal.defPrec ) );
} else if( ClipMath.toInt( value.min() ) != 0 ){
real.set( value.timeMinus() ? "-" : "" );
real.add( ((value.min() < 10.0) ? "0" : "") + ClipMath.floatToString( ClipMath.toInt( value.min() ) ) );
real.add( ":" );
real.add( ((value.sec() < 10.0) ? "0" : "") + ClipMath.floatToString( value.sec(), ClipGlobal.defPrec ) );
} else {
real.set( value.timeMinus() ? "-" : "" );
real.add( ((value.sec() < 10.0) ? "0" : "") + ClipMath.floatToString( value.sec(), ClipGlobal.defPrec ) );
}
imag.set( "" );
break;
case ClipGlobal.modeFTime:
if( ClipMath.toInt( value.hour() ) != 0 ){
real.set( value.timeMinus() ? "-" : "" );
real.add( ((value.hour () < 10.0) ? "0" : "") + ClipMath.floatToString( ClipMath.toInt( value.hour() ) ) );
real.add( ":" );
real.add( ((value.min () < 10.0) ? "0" : "") + ClipMath.floatToString( ClipMath.toInt( value.min() ) ) );
real.add( ":" );
real.add( ((value.sec () < 10.0) ? "0" : "") + ClipMath.floatToString( ClipMath.toInt( value.sec() ) ) );
real.add( ":" );
real.add( ((value.frame() < 10.0) ? "0" : "") + ClipMath.floatToString( value.frame(), ClipGlobal.defPrec ) );
} else if( ClipMath.toInt( value.min() ) != 0 ){
real.set( value.timeMinus() ? "-" : "" );
real.add( ((value.min () < 10.0) ? "0" : "") + ClipMath.floatToString( ClipMath.toInt( value.min() ) ) );
real.add( ":" );
real.add( ((value.sec () < 10.0) ? "0" : "") + ClipMath.floatToString( ClipMath.toInt( value.sec() ) ) );
real.add( ":" );
real.add( ((value.frame() < 10.0) ? "0" : "") + ClipMath.floatToString( value.frame(), ClipGlobal.defPrec ) );
} else if( ClipMath.toInt( value.sec() ) != 0 ){
real.set( value.timeMinus() ? "-" : "" );
real.add( ((value.sec () < 10.0) ? "0" : "") + ClipMath.floatToString( ClipMath.toInt( value.sec() ) ) );
real.add( ":" );
real.add( ((value.frame() < 10.0) ? "0" : "") + ClipMath.floatToString( value.frame(), ClipGlobal.defPrec ) );
} else {
real.set( value.timeMinus() ? "-" : "" );
real.add( ((value.frame() < 10.0) ? "0" : "") + ClipMath.floatToString( value.frame(), ClipGlobal.defPrec ) );
}
imag.set( "" );
break;
case ClipGlobal.modeSChar:
real.set( ClipMath.intToString( ClipMath.signed( value.toFloat(), ClipMath.umax8, ClipMath.smin8, ClipMath.smax8 ), param.radix() ) );
imag.set( "" );
break;
case ClipGlobal.modeUChar:
real.set( ClipMath.intToString( ClipMath.unsigned( value.toFloat(), ClipMath.umax8 ), param.radix() ) );
imag.set( "" );
break;
case ClipGlobal.modeSShort:
real.set( ClipMath.intToString( ClipMath.signed( value.toFloat(), ClipMath.umax16, ClipMath.smin16, ClipMath.smax16 ), param.radix() ) );
imag.set( "" );
break;
case ClipGlobal.modeUShort:
real.set( ClipMath.intToString( ClipMath.unsigned( value.toFloat(), ClipMath.umax16 ), param.radix() ) );
imag.set( "" );
break;
case ClipGlobal.modeSLong:
real.set( ClipMath.intToString( ClipMath.signed( value.toFloat(), ClipMath.umax32, ClipMath.smin32, ClipMath.smax32 ), param.radix() ) );
imag.set( "" );
break;
case ClipGlobal.modeULong:
real.set( ClipMath.intToString( ClipMath.unsigned( value.toFloat(), ClipMath.umax32 ), param.radix() ) );
imag.set( "" );
break;
}
}