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; }
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; }
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;*/ }
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()); }