Exemplo n.º 1
0
        public OidWrapper(IOid oid)
        {
            SurfaceUtils.AssertNotNull(oid, "Oid is null");


            this.oid = oid;
        }
Exemplo n.º 2
0
        /// <inheritdoc />
        public override void Initialize(LayoutElementsContainer layout)
        {
            base.Initialize(layout);

            _isValid = IsValid;
            if (!_isValid)
            {
                return;
            }

            // Show all effect parameters grouped by the emitter track name
            var effect = (ParticleEffect)Values[0];
            var groups = layout.Group("Parameters");

            groups.Panel.Open(false);
            var parameters       = effect.Parameters;
            var parametersGroups = parameters.GroupBy(x => x.EmitterIndex);

            foreach (var parametersGroup in parametersGroups)
            {
                var trackName = parametersGroup.First().TrackName;
                var group     = groups.Group(trackName);
                group.Panel.Open(false);

                var data = SurfaceUtils.InitGraphParameters(parametersGroup);
                SurfaceUtils.DisplayGraphParameters(group, data,
                                                    (instance, parameter, tag) => ((ParticleEffect)instance).GetParameterValue(trackName, parameter.Name),
                                                    (instance, value, parameter, tag) => ((ParticleEffect)instance).SetParameterValue(trackName, parameter.Name, value),
                                                    Values,
                                                    (instance, parameter, tag) => ((ParticleEffectParameter)tag).DefaultValue);
            }
        }
Exemplo n.º 3
0
        public NakedObjectSpecificationWrapper(ITypeSpec spec, INakedObjectsSurface surface, INakedObjectsFramework framework)
        {
            SurfaceUtils.AssertNotNull(spec, "Spec is null");
            SurfaceUtils.AssertNotNull(surface, "Surface is null");
            SurfaceUtils.AssertNotNull(framework, "framework is null");

            Surface        = surface;
            this.spec      = spec;
            this.framework = framework;
        }
        public NakedObjectAssociationWrapper(IAssociationSpec assoc, INakedObjectsSurface surface, INakedObjectsFramework framework)
        {
            SurfaceUtils.AssertNotNull(assoc, "Assoc is null");
            SurfaceUtils.AssertNotNull(framework, "framework is null");
            SurfaceUtils.AssertNotNull(surface, "surface is null");

            this.assoc     = assoc;
            this.framework = framework;
            Surface        = surface;
        }
                public override void Initialize(LayoutElementsContainer layout)
                {
                    var window     = (ParticleEmitterWindow)Values[0];
                    var parameters = window.Preview.PreviewActor.Parameters;
                    var data       = SurfaceUtils.InitGraphParameters(parameters);

                    SurfaceUtils.DisplayGraphParameters(layout, data,
                                                        (instance, parameter, tag) => ((ParticleEmitterWindow)instance).Preview.PreviewActor.GetParameterValue(string.Empty, parameter.Name),
                                                        (instance, value, parameter, tag) => ((ParticleEmitterWindow)instance).Preview.PreviewActor.SetParameterValue(string.Empty, parameter.Name, value),
                                                        Values);
                }
 private static T MapErrors<T>(Func<T> f) {
     try {
         return f();
     }
     catch (NakedObjectsSurfaceException) {
         throw;
     }
     catch (Exception e) {
         throw SurfaceUtils.Map(e);
     }
 }
Exemplo n.º 7
0
        protected NakedObjectWrapper(INakedObject nakedObject, INakedObjectsSurface surface, INakedObjectsFramework framework)
        {
            SurfaceUtils.AssertNotNull(nakedObject, "NakedObject is null");
            SurfaceUtils.AssertNotNull(surface, "Surface is null");
            SurfaceUtils.AssertNotNull(framework, "framework is null");


            this.nakedObject = nakedObject;
            this.framework   = framework;
            Surface          = surface;
        }
        public NakedObjectActionParameterWrapper(IActionParameterSpec nakedObjectActionParameter, INakedObjectsSurface surface, INakedObjectsFramework framework, string overloadedUniqueId)
        {
            SurfaceUtils.AssertNotNull(nakedObjectActionParameter, "Action Parameter is null");
            SurfaceUtils.AssertNotNull(framework, "framework is null");
            SurfaceUtils.AssertNotNull(overloadedUniqueId, "overloadedUniqueId is null");
            SurfaceUtils.AssertNotNull(surface, "surface is null");

            this.nakedObjectActionParameter = nakedObjectActionParameter;
            this.framework          = framework;
            this.overloadedUniqueId = overloadedUniqueId;
            Surface = surface;
        }
Exemplo n.º 9
0
        public NakedObjectActionWrapper(IActionSpec action, INakedObjectsSurface surface, INakedObjectsFramework framework, string overloadedUniqueId)
        {
            SurfaceUtils.AssertNotNull(action, "Action is null");
            SurfaceUtils.AssertNotNull(framework, "framework is null");
            SurfaceUtils.AssertNotNull(overloadedUniqueId, "overloadedUniqueId is null");
            SurfaceUtils.AssertNotNull(surface, "surface is null");


            this.action             = action;
            this.framework          = framework;
            this.overloadedUniqueId = overloadedUniqueId;
            Surface = surface;
        }
        private Tuple<IActionSpec, string> GetActionInternal(string actionName, INakedObject nakedObject) {
            if (string.IsNullOrWhiteSpace(actionName)) {
                throw new BadRequestNOSException();
            }

            IActionSpec[] actions = nakedObject.Spec.GetActionLeafNodes().Where(p => p.IsVisible(nakedObject)).ToArray();
            IActionSpec action = actions.SingleOrDefault(p => p.Id == actionName) ?? SurfaceUtils.GetOverloadedAction(actionName, nakedObject.Spec);

            if (action == null) {
                throw new ActionResourceNotFoundNOSException(actionName);
            }

            return new Tuple<IActionSpec, string>(action, SurfaceUtils.GetOverloadedUId(action, nakedObject.Spec));
        }
        //
        // Surfaces & Co
        //
        public static Surface JoinWith(this Surface surf, double tolerance, params Surface[] others)
        {
            List <Entity> list = new List <Entity>(others.Length + 1);

            if (surf.Faces.Length != 0 || surf.Points.Count != 0)
            {
                list.Add(surf);
            }

            list.AddRange(others);

            surf.CloneFrom(SurfaceUtils.JoinSurfaces2(list, tolerance));

            return(surf);
        }
        private Tuple<IActionSpec, ITypeSpec, IActionParameterSpec, string> GetActionParameterTypeInternal(string typeName, string actionName, string parmName) {
            if (string.IsNullOrWhiteSpace(typeName) || string.IsNullOrWhiteSpace(actionName) || string.IsNullOrWhiteSpace(parmName)) {
                throw new BadRequestNOSException();
            }

            ITypeSpec spec = GetDomainTypeInternal(typeName);
            Tuple<IActionSpec, string> actionAndUid = SurfaceUtils.GetActionandUidFromSpec(spec, actionName, typeName);

            IActionParameterSpec parm = actionAndUid.Item1.Parameters.SingleOrDefault(p => p.Id == parmName);

            if (parm == null) {
                throw new TypeActionParameterResourceNotFoundNOSException(parmName, actionName, typeName);
            }

            return new Tuple<IActionSpec, ITypeSpec, IActionParameterSpec, string>(actionAndUid.Item1, spec, parm, actionAndUid.Item2);
        }
        private Tuple<ActionContext, ITypeSpec> GetActionTypeInternal(string typeName, string actionName) {
            if (string.IsNullOrWhiteSpace(typeName) || string.IsNullOrWhiteSpace(actionName)) {
                throw new BadRequestNOSException();
            }

            ITypeSpec spec = GetDomainTypeInternal(typeName);
            var actionAndUid = SurfaceUtils.GetActionandUidFromSpec(spec, actionName, typeName);

            var actionContext = new ActionContext {
                Action = actionAndUid.Item1,
                VisibleParameters = FilterParmsForContributedActions(actionAndUid.Item1, spec, actionAndUid.Item2),
                OverloadedUniqueId = actionAndUid.Item2

            };

            return new Tuple<ActionContext, ITypeSpec>(actionContext, spec);
        }
Exemplo n.º 14
0
        /// <inheritdoc />
        public override void Initialize(LayoutElementsContainer layout)
        {
            base.Initialize(layout);

            // Show instanced parameters to view/edit at runtime
            if (Values.IsSingleObject && Editor.Instance.StateMachine.IsPlayMode)
            {
                var group = layout.Group("Parameters");
                group.Panel.Open(false);
                group.Panel.IndexInParent -= 2;

                var animatedModel = (AnimatedModel)Values[0];
                var parameters    = animatedModel.Parameters;
                var data          = SurfaceUtils.InitGraphParameters(parameters);
                SurfaceUtils.DisplayGraphParameters(group, data,
                                                    (instance, parameter, tag) => ((AnimatedModel)instance).GetParameterValue(parameter.Identifier),
                                                    (instance, value, parameter, tag) => ((AnimatedModel)instance).SetParameterValue(parameter.Identifier, value),
                                                    Values);
            }
        }
        private ObjectContext GetObjectContext(INakedObject nakedObject) {
            if (nakedObject == null) {
                return null;
            }

            IActionSpec[] actions = nakedObject.Spec.GetActionLeafNodes().Where(p => p.IsVisible(nakedObject)).ToArray();
            var objectSpec = nakedObject.Spec as IObjectSpec;
            IAssociationSpec[] properties = objectSpec == null ? new IAssociationSpec[] { } : objectSpec.Properties.Where(p => p.IsVisible(nakedObject)).ToArray();

            return new ObjectContext(nakedObject) {
                VisibleActions = actions.Select(a => new {action = a, uid = SurfaceUtils.GetOverloadedUId(a, nakedObject.Spec)}).Select(a => new ActionContext {
                    Action = a.action,
                    Target = nakedObject,
                    VisibleParameters = FilterParmsForContributedActions(a.action, nakedObject.Spec, a.uid),
                    OverloadedUniqueId = a.uid
                }).ToArray(),
                VisibleProperties = properties.Select(p => new PropertyContext {
                    Property = p,
                    Target = nakedObject
                }).ToArray()
            };
        }
Exemplo n.º 16
0
        public VersionWrapper(IVersion version)
        {
            SurfaceUtils.AssertNotNull(version, "Version is null");

            this.version = version;
        }
Exemplo n.º 17
0
        public INakedObjectActionSurface[] GetActionLeafNodes()
        {
            var actionsAndUid = SurfaceUtils.GetActionsandUidFromSpec(spec);

            return(actionsAndUid.Select(a => new NakedObjectActionWrapper(a.Item1, Surface, framework, a.Item2 ?? "")).Cast <INakedObjectActionSurface>().ToArray());
        }
Exemplo n.º 18
0
            /// <inheritdoc />
            public override void OnLoaded()
            {
                base.OnLoaded();

                // Update title and the tooltip
                var typeName = (string)Values[0];

                TooltipText = typeName;
                var type = TypeUtils.GetType(typeName);

                if (type)
                {
                    GetBox(0).CurrentType = type;
                    Title       = (_isUnpacking ? "Unpack " : "Pack ") + type.Name;
                    TooltipText = SurfaceUtils.GetVisualScriptTypeDescription(type);
                }
                else
                {
                    Title = (_isUnpacking ? "Unpack " : "Pack ") + typeName;
                }

                // Update the boxes
                int fieldsLength;

                if (type)
                {
                    // Generate boxes for all structure fields
                    var fields = type.GetMembers(BindingFlags.Public | BindingFlags.Instance).Where(x => x.IsField).ToArray();
                    fieldsLength = fields.Length;
                    for (var i = 0; i < fieldsLength; i++)
                    {
                        var field = fields[i];
                        MakeBox(i + 1, field.Name, field.ValueType);
                    }

                    // Remove any not used boxes
                    for (int i = fieldsLength + 2; i < 32; i++)
                    {
                        var box = GetBox(i);
                        if (box == null)
                        {
                            break;
                        }
                        RemoveElement(box);
                    }

                    // Save structure layout
                    if (fieldsLength == 0)
                    {
                        // Skip allocations if structure is empty
                        Values[1] = Utils.GetEmptyArray <byte>();
                    }
                    else
                    {
                        using (var stream = new MemoryStream())
                            using (var writer = new BinaryWriter(stream))
                            {
                                writer.Write((byte)1);      // Version
                                writer.Write(fieldsLength); // Fields count
                                for (int i = 0; i < fieldsLength; i++)
                                {
                                    Utilities.Utils.WriteStr(writer, fields[i].Name, 11);                 // Field type
                                    Utilities.VariantUtils.WriteVariantType(writer, fields[i].ValueType); // Field type
                                }
                                Values[1] = stream.ToArray();
                            }
                    }
                }
                else if (Values[1] is byte[] data && data.Length != 0 && data[0] == 1)
                {
                    // Recreate node boxes based on the saved structure layout to preserve the connections
                    using (var stream = new MemoryStream(data))
                        using (var reader = new BinaryReader(stream))
                        {
                            reader.ReadByte();                 // Version
                            fieldsLength = reader.ReadInt32(); // Fields count
                            for (int i = 0; i < fieldsLength; i++)
                            {
                                var fieldName = Utilities.Utils.ReadStr(reader, 11);            // Field name
                                var fieldType = Utilities.VariantUtils.ReadVariantType(reader); // Field type
                                MakeBox(i + 1, fieldName, new ScriptType(fieldType));
                            }
                        }
                }

                // Update node size
                ResizeAuto();
            }
Exemplo n.º 19
0
 public ConsentWrapper(IConsent consent)
 {
     SurfaceUtils.AssertNotNull(consent, "Consent is null");
     this.consent = consent;
 }