public static void SetupFunctions(ConstraintMappingList mappingList) { //Point to Point constraints mappingList.Register <PointOnPointConstraintRefMapper>(Constraint2DNames.PointOnPointFunction); //Line constraints mappingList.Register <OneLineConstraintRefMapper <HorizontalRef> >(Constraint2DNames.HorizontalFunction); mappingList.Register <OneLineConstraintRefMapper <VerticalRef> >(Constraint2DNames.VerticalFunction); //Line to Line constraints mappingList.Register <TwoLinesConstraintRefMapper <ParallelRef> >(Constraint2DNames.ParallelFunction); mappingList.Register <TwoLinesConstraintRefMapper <PerpendicularRef> >(Constraint2DNames.PerpendicularFunction); mappingList.Register <TwoLinesConstraintRefMapper <ColinearRef> >(Constraint2DNames.ColinearFunction); mappingList.Register <TwoLinesConstraintRefMapper <EqualLengthRef> >(Constraint2DNames.EqualLengthFunction); mappingList.Register <PointOnArcConstraintRefMapper>(Constraint2DNames.PointOnArcFunction); mappingList.Register <PointOnCircleConstraintRefMapper>(Constraint2DNames.PointOnCircleFunction); mappingList.Register <PointOnArcMidpointRefMapper>(Constraint2DNames.PointOnArcMidpointFunction); mappingList.Register <PointOnLineRefMapper>(Constraint2DNames.PointOnLineFunction); mappingList.Register <PointOnSegmentRefMapper>(Constraint2DNames.PointOnSegmentFunction); mappingList.Register <PointOnLineMidPointRefMapper>(Constraint2DNames.PointOnLineMidpointFunction); //Circle to Line constraints mappingList.Register <TangentToCircleRefMapper>(Constraint2DNames.TangentToCircleFunction); //Arc to Line constraints mappingList.Register <TangentToArcRefMapper>(Constraint2DNames.TangentToArcFunction); //Arc to Circle constraints mappingList.Register <EqualRadiusCircArcRefMapper>(Constraint2DNames.EqualRadiusCircArcFunction); mappingList.Register <ConcentricCirclesArcRefMapper>(Constraint2DNames.ConcentricCircArcFunction); //Arc to Arc constraints mappingList.Register <TwoArcsConstraintRefMapper <ConcentricArcsRef> >(Constraint2DNames.ConcentricArcsFunction); mappingList.Register <TwoArcsConstraintRefMapper <EqualRadiusArcsRef> >(Constraint2DNames.EqualRadiusArcsFunction); //Circle to Circle constraints mappingList.Register <TwoCirclesConstraintRefMapper <ConcentricCirclesRef> >( Constraint2DNames.ConcentricCirclesFunction); mappingList.Register <TwoCirclesConstraintRefMapper <EqualRadiusCirclesRef> >( Constraint2DNames.EqualRadiusCirclesFunction); //Point to value constraints mappingList.Register <PositionToCenterConstraintMapper>(Constraint2DNames.PositionToCenterFunction); mappingList.Register <CircleRadiusConstraintMapper>(Constraint2DNames.CircleRadiusFunction); mappingList.Register <LineLengthConstraintMapper>(Constraint2DNames.LineLengthFunction); mappingList.Register <ArcRadiusConstraintMapper>(Constraint2DNames.ArcRadiusFunction); mappingList.Register <ArcAnglesConstraintMapper>(Constraint2DNames.ArcAnglesFunction); mappingList.Register <PositiveParameterConstraintMapper>(Constraint2DNames.PositiveParameterFunction); //mappingList.Register<PointToPointDistanceConstraintRefMapper>(Constraint2DNames.P2PDistanceFunction); }
// public List<int> softConstraints = new List<int>(); public NaroSketchSolveBuilder(Document document, Node sketchNode) { _document = document; ShapeSolverObjectMapping = new Dictionary <string, ISolverObjectMapping>(); ConstraintList = new ConstraintRefContainer(); MapShapes(); ConstraintMappingList = new ConstraintMappingList(); DefaultConstraintsMapping.SetupFunctions(ConstraintMappingList); }