valueToString method

void valueToString(
  1. ClipParam param,
  2. MathValue value,
  3. ParamString real,
  4. ParamString imag,
)

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;
	}
}