Example #1
0
        public Snapper(
            SessionData sessionData,
            UiState uiState,
            ILoggerFacade logger,
            IEventAggregator eventAggregator,
            IAnnotationInference annotationInference,
            IConstrainedOptimizer constrainedOptimizer,
            SnapOptions snapOptions)
        {
            this.sessionData          = sessionData;
            this.eventAggregator      = eventAggregator;
            this.annotationInference  = annotationInference;
            this.constrainedOptimizer = constrainedOptimizer;
            this.snapOptions          = snapOptions;

            primitivesReaderWriterFactory = new PrimitivesReaderWriterFactory();
            var annotationConstraintsExtractor = new AnnotationConstraintsExtractor();

            snappersManager = new SnappersManager(uiState, sessionData);
            snappersManager.RegisterSnapper(new ConeSnapper());
            snappersManager.RegisterSnapper(new CylinderSnapper());
            snappersManager.RegisterSnapper(new SphereSnapper());
            snappersManager.RegisterSnapper(new SgcSnapper());
            snappersManager.RegisterSnapper(new BgcSnapper());
            snappersManager.RegisterSnapper(new CuboidSnapper());

            wholeShapeOptimizationModel = new WholeShapeOptimizationModel(sessionData, snappersManager, annotationConstraintsExtractor, primitivesReaderWriterFactory);

            eventAggregator.GetEvent <GlobalShortcutEvent>().Subscribe(OnGlobalShortcut);

            logger.Log("NewSnapper created", Category.Debug, Priority.None);
        }
 public NewPrimitiveViewModel(UiState uiState, ICurveAssigner curveAssigner, IEventAggregator eventAggregator, IConstrainedOptimizer optimizer)
 {
     ContextMenu = new ObservableCollection<MenuCommandData>();
     this.optimizer = optimizer;
     this.uiState = uiState;
     this.curveAssigner = curveAssigner;
     this.eventAggregator = eventAggregator;
 }
 public NewSGCViewModel(
     UiState uiState = null,
     ICurveAssigner curveAssigner     = null,
     IEventAggregator eventAggregator = null,
     IConstrainedOptimizer optimizer  = null)
     : base(uiState, curveAssigner, eventAggregator, optimizer)
 {
     model      = new NewStraightGenCylinder();
     components = EMPTY_COMPONENTS;
 }
 public NewSphereViewModel(
     UiState uiState = null,
     ICurveAssigner curveAssigner     = null,
     IEventAggregator eventAggregator = null,
     IConstrainedOptimizer optimizer  = null)
     : base(uiState, curveAssigner, eventAggregator, optimizer)
 {
     radius             = 0.1;
     model              = new NewSphere();
     model.Radius.Value = radius;
 }
 public NewCylinderViewModel(UiState uiState = null, ICurveAssigner curveAssigner = null, IEventAggregator eventAggregator = null,
                             IConstrainedOptimizer optimizer = null)
     : base(uiState, curveAssigner, eventAggregator, optimizer)
 {
     // set default data
     diameter             = 0.2;
     length               = 0.5;
     axis                 = MathUtils3D.UnitZ;
     model                = new NewCylinder();
     model.Axis.Value     = axis;
     model.Length.Value   = length;
     model.Diameter.Value = diameter;
 }
Example #6
0
 public TemporarySnap(SessionData sessionData,
                      SnappersManager snappersManager,
                      PrimitivesReaderWriterFactory primitivesReaderWriterFactory,
                      IEventAggregator eventAggregator,
                      NewPrimitive newPrimitive,
                      IConstrainedOptimizer optimizer)
 {
     this.sessionData     = sessionData;
     this.snappersManager = snappersManager;
     this.primitivesReaderWriterFactory = primitivesReaderWriterFactory;
     this.eventAggregator = eventAggregator;
     this.newPrimitive    = newPrimitive;
     this.optimizer       = optimizer;
 }
Example #7
0
        public NewCuboidViewModel(UiState uiState = null, ICurveAssigner curveAssigner = null, IEventAggregator eventAggregator = null,
                                  IConstrainedOptimizer optimizer = null)
            : base(uiState, curveAssigner, eventAggregator, optimizer)
        {
            // set default data

            /*diameter = 0.2;
             * length = 0.5;
             * axis = MathUtils3D.UnitZ;*/
            model = new NewCuboid();

            /*model.Axis.Value = axis;
             * model.Length.Value = length;
             * model.Diameter.Value = diameter;*/
        }
Example #8
0
        public NewConeViewModel(
            UiState uiState = null,
            ICurveAssigner curveAssigner     = null,
            IEventAggregator eventAggregator = null,
            IConstrainedOptimizer optimizer  = null)
            : base(uiState, curveAssigner, eventAggregator, optimizer)
        {
            topRadius    = 0.2;
            bottomRadius = 0.2;
            length       = 0.5;
            axis         = MathUtils3D.UnitZ;
            center       = MathUtils3D.Origin;

            model = new NewCone();
            UpdateModel();
        }
 public ConstraintsProjector(IConstrainedOptimizer optimizer, IEnumerable <PrimitiveEditConstraint> constraints)
 {
     this.optimizer   = optimizer;
     this.constraints = Array.AsReadOnly(constraints.ToArray());
 }