예제 #1
0
        private void ComputeSchema()
        {
            //var debugTimer = DiagnosticTimer.Start("Schema Timing: ");

            if (ExternalSchemaProvider != null)
            {
                ExternalSchemaProvider.CacheSchema();
            }
            var schemaList = PayloadExpression.ComputeSchemaForGroups(ChainView.Instance.Chain.RootBoundingBoxes);

            List <MutableObject> .Enumerator schemaEnumerator = schemaList.GetEnumerator();
            var groupEnumerator = CriteriaGroupViews.GetEnumerator();

            while (groupEnumerator.MoveNext() && schemaEnumerator.MoveNext())
            {
                groupEnumerator.Current.Schema = schemaEnumerator.Current;
            }
            while (groupEnumerator.MoveNext())
            {
                groupEnumerator.Current.Schema = new MutableObject {
                };
            }

            if (ExternalSchemaProvider != null)
            {
                ExternalSchemaProvider.UnCacheSchema();
            }

            //Debug.Log("Debug Timer: " + debugTimer.Stop().Conclusion + ", with " + MutableObject.SchemaCounter + " schema modifications.");
        }
        public BoundsFromPayloadExpressionStep()
        {
            BoundsProviderKey = "BoundsFromPayExprStep";

            Bounds = new List <BoundingBox>();

            Expression = new PayloadExpression();

            Router.AddEvent(CompleteEventName);
        }
예제 #3
0
        public PerformMetaSelectionStep()
        {
            BoundsProviderKey = "PerfMetaSelStep";

            Router.AddEvent(EndEventName);

            TargetExpression = new PayloadExpression();

            InternalBounds = new List <BoundingBox>();
        }
예제 #4
0
        private void HighlightSelection()
        {
            DisableHighlights();

            foreach (var bound in PayloadExpression.ResolveExpression(
                         ChainView.Instance.Chain.RootBoundingBoxes))
            {
                bound.Highlight = true;
            }
        }
예제 #5
0
 public void HandleAddGroupButtonPressed()
 {
     PayloadExpression.AddCriteriaGroup();
 }