+
+ /* alpha scale A */
+ else if( alpha && !Q_stricmp( token, "scale" ) )
+ {
+ cm->type = CM_ALPHA_SCALE;
+ GetTokenAppend( shaderText, qfalse );
+ cm->data[ 0 ] = atof( token );
+ }
+
+ /* color|rgb scale ( X Y Z ) */
+ else if( !Q_stricmp( token, "scale" ) )
+ {
+ cm->type = CM_COLOR_SCALE;
+ Parse1DMatrixAppend( shaderText, 3, cm->data );
+ }
+
+ /* dotProduct ( X Y Z ) */
+ else if( !Q_stricmp( token, "dotProduct" ) )
+ {
+ cm->type = CM_COLOR_DOT_PRODUCT + alpha;
+ Parse1DMatrixAppend( shaderText, 3, cm->data );
+ }
+
+ /* dotProduct2 ( X Y Z ) */
+ else if( !Q_stricmp( token, "dotProduct2" ) )
+ {
+ cm->type = CM_COLOR_DOT_PRODUCT_2 + alpha;
+ Parse1DMatrixAppend( shaderText, 3, cm->data );
+ }
+
+ /* volume */
+ else if( !Q_stricmp( token, "volume" ) )
+ {
+ /* special stub mode for flagging volume brushes */
+ cm->type = CM_VOLUME;
+ }
+
+ /* unknown */