public CacheData(FunctionDependency dependency, string functionName)
            {
                _dependency   = dependency;
                _functionName = functionName;
                Data          = new List <object>();
                foreach (var dependencyNode in dependency.Children)
                {
                    switch (dependencyNode.Name)
                    {
                    case InterpreterNames.Real:
                        Data.Add(dependencyNode.Real);
                        break;

                    case InterpreterNames.TransformedPoint3D:
                        Data.Add(dependencyNode.TransformedPoint3D);
                        break;

                    case InterpreterNames.Integer:
                        Data.Add(dependencyNode.Integer);
                        break;

                    default:
                        Data.Add(null);
                        break;
                    }
                }
            }
Esempio n. 2
0
        private bool ApplyConstraint(FunctionDependency dependency, ref AISInteractiveObject interactive,
                                     Point3D destinationPoint, Point3D sourcePoint, Point3D distancePoint)
        {
            var transform           = dependency[1].Reference.Set <TransformationInterpreter>();
            var substractedDistance = destinationPoint.SubstractCoordinate(sourcePoint);

            if (dependency[0].Reference.Index != dependency[1].Reference.Index)
            {
                if (distancePoint.IsEqual(substractedDistance))
                {
                    interactive = UpdateInteractive(sourcePoint);
                    return(true);
                }

                var translateVal = new Point3D(transform.Translate);
                transform.Translate =
                    translateVal.AddCoordinate(distancePoint.SubstractCoordinate(substractedDistance)).GpPnt;
            }
            else
            {
                var origin           = new Point3D();
                var pointDistance    = distancePoint.Distance(origin);
                var expectedDistance = substractedDistance.Distance(origin);
                if (Math.Abs(pointDistance - expectedDistance) < Precision.Confusion)
                {
                    interactive = UpdateInteractive(sourcePoint);
                    return(true);
                }
                transform.Scale = transform.Scale * pointDistance / expectedDistance;
            }
            return(false);
        }
        public void Execute(object parameter)
        {
            var args = (parameter as object[])[1] as AddingNewItemEventArgs;

            var newDependency = new FunctionDependency();

            this.appContext.FunctionDependencies.Add(newDependency);
            args.NewItem = this.mapper.Map <FunctionDependencyPageDependencyItemViewModel>(newDependency);
        }
Esempio n. 4
0
 public void SetNode(Node shape)
 {
     Node = shape;
     if (Node.Get <FunctionInterpreter>() == null)
     {
         return;
     }
     Dependency = Node.Get <FunctionInterpreter>().Dependency;
 }