Ejemplo n.º 1
0
        public Object GetValue(TimeValue t)
        {
            ParamType pt = pb.GetParameterType(id);

            switch (pt)
            {
            case ParamType.Int:
                return(pb.GetInt(id, t));

            case ParamType.Float:
            {
                IParamDimension dimension = GetDimension();
                float           result    = pb.GetFloat(id, t);

                try
                {
                    return(dimension != null?dimension.Convert(result) : result);
                }
                // This happens sometimes?
                catch (AccessViolationException)
                {
                    throw;
                    //Plugin.Log( Plugin.LogType.Warning, "Error while using IParamDimension to convert value (AccessViolationException)" );
                }
                // Also happens when dimension is corrupt (i.e. during VRayMtl creation on 32 bit)
                catch (NullReferenceException)
                {
                    throw;
                }
                catch (Exception)
                {
                    throw;
                    // Plugin.Log( Plugin.LogType.Warning, "Unknown error while using IParamDimension to convert value" );
                }
            }

            case ParamType.Bool:
                return(pb.GetInt(id, t) != 0);

            case ParamType.Rgba:
                return(pb.GetColor(id, t));

            case ParamType.Point3:
                return(pb.GetPoint3(id, t));

            default:
                return("parameter type " + Enum.GetName(typeof(ParamType), pt) + " is not supported");
            }
        }
Ejemplo n.º 2
0
        public static float GetParamBlockValueFloat(IIParamBlock paramBlock, string name)
        {
            var index = Tools.GetParamBlockIndex(paramBlock, name);

            if (index == -1)
            {
                return(0);
            }
            return(paramBlock.GetFloat(index, 0));
        }
Ejemplo n.º 3
0
        public static float GetParamBlockValueFloat(IIParamBlock paramBlock, string name)
        {
            var index = Tools.GetParamBlockIndex(paramBlock, name);

            if (index == -1)
            {
                return 0;
            }
            return paramBlock.GetFloat(index, 0);
        }