示例#1
0
        public static SCNPhysicsShape Create(SCNPhysicsShape [] shapes, SCNVector3 [] transforms)
        {
            if (shapes == null)
                throw new ArgumentNullException ("shapes");

            if (transforms == null)
                throw new ArgumentNullException ("transforms");

            var t = new NSValue [transforms.Length];
            for (var i = 0; i < t.Length; i++)
                t [i] = NSValue.FromVector (transforms [i]);

            return Create (shapes, t);
        }
示例#2
0
 public virtual bool InsertTimeRanges(NSValue cmTimeRanges, AVAssetTrack[] tracks, CMTime startTime, out NSError error)
 {
     return InsertTimeRanges (new NSValue [] { cmTimeRanges }, tracks, startTime, out error);
 }
示例#3
0
        public static NSObject FromObject(object obj)
        {
            if (obj == null)
            {
                return(NSNull.Null);
            }
            var t = obj.GetType();

            if (t == typeof(NSObject) || t.IsSubclassOf(typeof(NSObject)))
            {
                return((NSObject)obj);
            }

            switch (Type.GetTypeCode(t))
            {
            case TypeCode.Boolean:
                return(new NSNumber((bool)obj));

            case TypeCode.Char:
                return(new NSNumber((ushort)(char)obj));

            case TypeCode.SByte:
                return(new NSNumber((sbyte)obj));

            case TypeCode.Byte:
                return(new NSNumber((byte)obj));

            case TypeCode.Int16:
                return(new NSNumber((short)obj));

            case TypeCode.UInt16:
                return(new NSNumber((ushort)obj));

            case TypeCode.Int32:
                return(new NSNumber((int)obj));

            case TypeCode.UInt32:
                return(new NSNumber((uint)obj));

            case TypeCode.Int64:
                return(new NSNumber((long)obj));

            case TypeCode.UInt64:
                return(new NSNumber((ulong)obj));

            case TypeCode.Single:
                return(new NSNumber((float)obj));

            case TypeCode.Double:
                return(new NSNumber((double)obj));

            case TypeCode.String:
                return(new NSString((string)obj));

            default:
                if (t == typeof(IntPtr))
                {
                    return(NSValue.ValueFromPointer((IntPtr)obj));
                }
#if !NO_SYSTEM_DRAWING
                if (t == typeof(SizeF))
                {
                    return(NSValue.FromSizeF((SizeF)obj));
                }
                else if (t == typeof(RectangleF))
                {
                    return(NSValue.FromRectangleF((RectangleF)obj));
                }
                else if (t == typeof(PointF))
                {
                    return(NSValue.FromPointF((PointF)obj));
                }
#endif
#if XAMCORE_2_0
                if (t == typeof(nint))
                {
                    return(NSNumber.FromNInt((nint)obj));
                }
                else if (t == typeof(nuint))
                {
                    return(NSNumber.FromNUInt((nuint)obj));
                }
                else if (t == typeof(nfloat))
                {
                    return(NSNumber.FromNFloat((nfloat)obj));
                }
                else if (t == typeof(CGSize))
                {
                    return(NSValue.FromCGSize((CGSize)obj));
                }
                else if (t == typeof(CGRect))
                {
                    return(NSValue.FromCGRect((CGRect)obj));
                }
                else if (t == typeof(CGPoint))
                {
                    return(NSValue.FromCGPoint((CGPoint)obj));
                }
#endif

#if !MONOMAC
                if (t == typeof(CGAffineTransform))
                {
                    return(NSValue.FromCGAffineTransform((CGAffineTransform)obj));
                }
                else if (t == typeof(UIEdgeInsets))
                {
                    return(NSValue.FromUIEdgeInsets((UIEdgeInsets)obj));
                }
#if !WATCH
                else if (t == typeof(CATransform3D))
                {
                    return(NSValue.FromCATransform3D((CATransform3D)obj));
                }
#endif
#endif
                // last chance for types like CGPath, CGColor... that are not NSObject but are CFObject
                // see https://bugzilla.xamarin.com/show_bug.cgi?id=8458
                INativeObject native = (obj as INativeObject);
                if (native != null)
                {
                    return(Runtime.GetNSObject(native.Handle));
                }
                return(null);
            }
        }
示例#4
0
 public virtual void GenerateCGImagesAsynchronously(NSValue cmTimesRequestedTimes, AVAssetImageGeneratorCompletionHandler handler)
 {
     NSValue[] values = new NSValue[] { cmTimesRequestedTimes };
     GenerateCGImagesAsynchronously (values, handler);
 }