Example #1
0
        public static Parameter Create(IParameterManager manager, Int16 id, RcpTypes.Datatype datatype, RcpTypes.Datatype elementType, int[] structure)
        {
            TypeDefinition typeDefinition, elementTypeDefinition;

            switch (datatype)
            {
            case RcpTypes.Datatype.Array:
                elementTypeDefinition = TypeDefinition.Create(elementType);
                typeDefinition        = elementTypeDefinition.CreateArray(structure ?? new int[1]);
                break;

            case RcpTypes.Datatype.List:
                throw new NotImplementedException();

            case RcpTypes.Datatype.Range:
                elementTypeDefinition = TypeDefinition.Create(elementType);
                typeDefinition        = elementTypeDefinition.CreateRange();
                break;

            default:
                typeDefinition = TypeDefinition.Create(datatype);
                break;
            }
            return(typeDefinition.CreateParameter(id, manager));
        }
Example #2
0
 public static bool HasElementType(RcpTypes.Datatype type)
 {
     switch (type)
     {
     case RcpTypes.Datatype.Array:
     case RcpTypes.Datatype.List:
     case RcpTypes.Datatype.Range:
         return(true);
     }
     return(false);
 }
Example #3
0
        public Parameter CreateRangeParameter(RcpTypes.Datatype elementType, string label = "", GroupParameter group = null)
        {
            var param = Parameter.Create(this, FIdCounter++, RcpTypes.Datatype.Range, elementType);

            return(AddAndReturn(param, label, group));
        }
Example #4
0
 public static Parameter Create(IParameterManager manager, Int16 id, RcpTypes.Datatype datatype, RcpTypes.Datatype elementType) => Create(manager, id, datatype, elementType, null);
Example #5
0
 public static Parameter Create(IParameterManager manager, Int16 id, RcpTypes.Datatype datatype) => Create(manager, id, datatype, 0);
Example #6
0
 public DefaultDefinition(RcpTypes.Datatype datatype, T @default) : base(datatype)
 {
     TypeDefault = FDefault = @default;
 }
Example #7
0
 public TypeDefinition(RcpTypes.Datatype datatype)
 {
     Datatype = datatype;
 }
Example #8
0
        public static TypeDefinition Create(RcpTypes.Datatype type)
        {
            switch (type)
            {
            case RcpTypes.Datatype.Customtype:
                break;

            case RcpTypes.Datatype.Boolean:
                return(new BooleanDefinition());

            case RcpTypes.Datatype.Int8:
                return(new Integer8Definition());

            case RcpTypes.Datatype.Uint8:
                return(new UInteger8Definition());

            case RcpTypes.Datatype.Int16:
                return(new Integer16Definition());

            case RcpTypes.Datatype.Uint16:
                return(new UInteger16Definition());

            case RcpTypes.Datatype.Int32:
                return(new Integer32Definition());

            case RcpTypes.Datatype.Uint32:
                return(new UInteger32Definition());

            case RcpTypes.Datatype.Int64:
                return(new Integer64Definition());

            case RcpTypes.Datatype.Uint64:
                return(new UInteger64Definition());

            case RcpTypes.Datatype.Float32:
                return(new Float32Definition());

            case RcpTypes.Datatype.Float64:
                return(new Float64Definition());

            case RcpTypes.Datatype.Vector2i32:
                break;

            case RcpTypes.Datatype.Vector2f32:
                return(new Vector2f32Definition());

            case RcpTypes.Datatype.Vector3i32:
                break;

            case RcpTypes.Datatype.Vector3f32:
                return(new Vector3f32Definition());

            case RcpTypes.Datatype.Vector4i32:
                break;

            case RcpTypes.Datatype.Vector4f32:
                return(new Vector4f32Definition());

            case RcpTypes.Datatype.String:
                return(new StringDefinition());

            case RcpTypes.Datatype.Rgb:
                return(new RGBDefinition());

            case RcpTypes.Datatype.Rgba:
                return(new RGBADefinition());

            case RcpTypes.Datatype.Enum:
                return(new EnumDefinition());

            case RcpTypes.Datatype.Array:
                throw new ArgumentException(nameof(type), "Must not be an array.");

            case RcpTypes.Datatype.List:
                throw new ArgumentException(nameof(type), "Must not be a list.");

            case RcpTypes.Datatype.Bang:
                return(new BangDefinition());

            case RcpTypes.Datatype.Group:
                return(new GroupDefinition());

            case RcpTypes.Datatype.Uri:
                return(new UriDefinition());

            case RcpTypes.Datatype.Image:
                return(new ImageDefinition());

            case RcpTypes.Datatype.Ipv4:
                break;

            case RcpTypes.Datatype.Ipv6:
                break;

            case RcpTypes.Datatype.Range:
                throw new ArgumentException(nameof(type), "Must not be a range.");

            default:
                throw new NotImplementedException($"Unkown type {type}.");
            }
            throw new NotSupportedException($"{type} is not supported yet.");
        }