public override void OnInspectorGUI( )
	{
		serializedObject.Update( );
		
		SplineNode targetNode = target as SplineNode;
		
		EditorGUILayout.LabelField( "   Name", target.name );
		
		if( targetNode.spline == null )
		{
			EditorGUILayout.HelpBox( "This SplineNode isn't used by any spline in the scene. Attach this node to a spline by dragging it onto a spline's Inspector window!", MessageType.Info );
			return;
		}
		
		int index = Array.IndexOf( targetNode.spline.SplineNodes, targetNode );
		
		EditorGUILayout.TextField( "   Index in Spline", index.ToString( ) );
		EditorGUILayout.Space( );
		
		lMode = (LengthMode) EditorGUILayout.EnumPopup( "   Length Mode", lMode );
		EditorGUILayout.Space( );
		
		EditorGUILayout.TextField( "   Position in Spline", (posInSplineProp.floatValue * ((lMode != LengthMode.GameUnits) ? 1 : ((SplineNode)target).spline.Length)).ToString( ) );
		EditorGUILayout.TextField( "   Distance to next node", (lengthProp.floatValue * ((lMode != LengthMode.GameUnits) ? 1 : ((SplineNode)target).spline.Length)).ToString( ) );
		EditorGUILayout.Space( );
		
		EditorGUILayout.PropertyField( customValueProp, new GUIContent( "   Custom Data" ) );
		EditorGUILayout.Space( );
		
		EditorGUILayout.BeginHorizontal( );
		EditorGUILayout.Space( );
		
		if( GUILayout.Button( "Previous Node", GetButtonGUIStyle( ), GUILayout.Width( 150f ), GUILayout.Height( 23f ) ) )
		{
			SplineNode[] splineNodes = targetNode.spline.SplineNodes;
			
			Selection.activeGameObject = splineNodes[ (index!=0 ? index : splineNodes.Length ) - 1].gameObject; 
		}
		
		GUILayout.Space( 10f );
		
		if( GUILayout.Button( "Next Node", GetButtonGUIStyle( ), GUILayout.Width( 150f ), GUILayout.Height( 23f ) ) )
		{
			SplineNode[] splineNodes = targetNode.spline.SplineNodes;
			
			Selection.activeGameObject = splineNodes[(index+1)%splineNodes.Length].gameObject; 
		}
			
		EditorGUILayout.Space( );
		EditorGUILayout.EndHorizontal( );
		
		EditorGUILayout.Space( );
		
		//Apply changes
		serializedObject.ApplyModifiedProperties( );
	}
    private void DrawInspectorOptions( )
    {
        EditorGUILayout.PrefixLabel("Inspector Options", EditorStyles.label, EditorStyles.boldLabel);

        ++EditorGUI.indentLevel;

        lMode = (LengthMode)EditorGUILayout.EnumPopup("Length Mode", lMode);
        SmallSpace( );

        --EditorGUI.indentLevel;
    }
        public override void Write(ref CborWriter writer, CborValue value, LengthMode lengthMode)
        {
            switch (value.Type)
            {
            case CborValueType.Object:
                ((ICborConverter <CborObject>) this).Write(ref writer, (CborObject)value, lengthMode);
                break;

            case CborValueType.Array:
                ((ICborConverter <CborArray>) this).Write(ref writer, (CborArray)value, lengthMode);
                break;

            case CborValueType.Positive:
                writer.WriteUInt64(value.Value <ulong>());
                break;

            case CborValueType.Negative:
                writer.WriteInt64(value.Value <long>());
                break;

            case CborValueType.Single:
                writer.WriteSingle(value.Value <float>());
                break;

            case CborValueType.Double:
                writer.WriteDouble(value.Value <double>());
                break;

            case CborValueType.Decimal:
                writer.WriteDecimal(value.Value <decimal>());
                break;

            case CborValueType.String:
                writer.WriteString(value.Value <string>());
                break;

            case CborValueType.Boolean:
                writer.WriteBoolean(value.Value <bool>());
                break;

            case CborValueType.Null:
                writer.WriteNull();
                break;

            case CborValueType.ByteString:
                writer.WriteByteString(value.Value <ReadOnlyMemory <byte> >().Span);
                break;
            }
        }
        public override void Write(ref CborWriter writer, TI[]?value, LengthMode lengthMode)
        {
            if (value == null)
            {
                writer.WriteNull();
                return;
            }

            WriterContext context = new WriterContext
            {
                array      = value,
                lengthMode = lengthMode != LengthMode.Default
                    ? lengthMode : _options.ArrayLengthMode
            };

            writer.WriteArray(this, ref context);
        }
Esempio n. 5
0
        public MemberConverter(CborConverterRegistry registry, IMemberMapping memberMapping)
        {
            MemberInfo?memberInfo = memberMapping.MemberInfo;

            if (memberInfo == null)
            {
                throw new CborException("MemberInfo must not be null");
            }

            _memberName            = Encoding.UTF8.GetBytes(memberMapping.MemberName !);
            _memberGetter          = GenerateGetter(memberInfo);
            _memberSetter          = GenerateSetter(memberInfo);
            _converter             = (ICborConverter <TM>)memberMapping.Converter !;
            _defaultValue          = (TM)memberMapping.DefaultValue !;
            _ignoreIfDefault       = memberMapping.IgnoreIfDefault;
            _shouldSerializeMethod = memberMapping.ShouldSerializeMethod;
            _lengthMode            = memberMapping.LengthMode;
            _requirementPolicy     = memberMapping.RequirementPolicy;
        }
Esempio n. 6
0
 public MemberMapping <T> SetLengthMode(LengthMode lengthMode)
 {
     LengthMode = lengthMode;
     return(this);
 }
 public virtual void Write(ref CborWriter writer, T value, LengthMode lengthMode)
 {
     Write(ref writer, value);
 }
        void ICborConverter <CborArray?> .Write(ref CborWriter writer, CborArray?value, LengthMode lengthMode)
        {
            if (value == null)
            {
                writer.WriteNull();
                return;
            }

            ArrayWriterContext arrayWriterContext = new ArrayWriterContext
            {
                array      = value,
                lengthMode = lengthMode != LengthMode.Default
                    ? lengthMode : _options.ArrayLengthMode
            };

            writer.WriteArray(this, ref arrayWriterContext);
        }
        void ICborConverter <CborObject?> .Write(ref CborWriter writer, CborObject?value, LengthMode lengthMode)
        {
            if (value == null)
            {
                writer.WriteNull();
                return;
            }

            MapWriterContext mapWriterContext = new MapWriterContext
            {
                obj        = value,
                enumerator = value.GetEnumerator(),
                lengthMode = lengthMode != LengthMode.Default
                    ? lengthMode : _options.MapLengthMode
            };

            writer.WriteMap(this, ref mapWriterContext);
        }
Esempio n. 10
0
 public static ulong GetChannelPosition(uint handle, LengthMode mode)
 {
     return(BASS_ChannelGetPosition(handle, (uint)mode));
 }
Esempio n. 11
0
 public static ulong GetChannelLength(uint handle, LengthMode mode)
 {
     return(BASS_ChannelGetLength(handle, (uint)mode));
 }
Esempio n. 12
0
 private static extern ulong BASS_ChannelGetPosition(this BassHandle handle, LengthMode mode);
Esempio n. 13
0
 public static ulong GetChannelPosition(this BassHandle handle, LengthMode mode)
 {
     return(handle.BASS_ChannelGetPosition(mode));
 }
Esempio n. 14
0
 public static ulong GetChannelLength(this BassHandle handle, LengthMode mode)
 {
     return(handle.BASS_ChannelGetLength(mode));
 }
Esempio n. 15
0
		public LengthDescriptor(double value, LengthMode lengthMode)
		{
			Value = value;
			LengthMode = lengthMode;
		}