package org.geogebra.common.kernel.commands; import org.geogebra.common.kernel.Kernel; import org.geogebra.common.kernel.algos.CmdUnitOrthogonalVector; import org.geogebra.common.kernel.algos.CmdUnitVector; import org.geogebra.common.kernel.kernelND.GeoConicNDConstants; import org.geogebra.common.main.Feature; import org.geogebra.common.plugin.Operation; /** * class to split off some CmdXXX classes into another jar (for faster applet * loading) * */ public class CommandDispatcherBasic implements CommandDispatcherInterface { @Override public CommandProcessor dispatch(Commands c, Kernel kernel) { switch (c) { // basic case Tangent: return new CmdTangent(kernel); case Length: return new CmdLength(kernel); case Sort: return new CmdSort(kernel); case BarChart: return new CmdBarChart(kernel); case Product: return new CmdProduct(kernel); case Extremum: return new CmdExtremum(kernel); case Join: return new CmdJoin(kernel); case LCM: return new CmdLCM(kernel); case GCD: return new CmdGCD(kernel); case Normalize: return new CmdNormalize(kernel); case Object: return new CmdObject(kernel); case LetterToUnicode: return new CmdLetterToUnicode(kernel); case UnicodeToLetter: return new CmdUnicodeToLetter(kernel); case CountIf: return new CmdCountIf(kernel); case UnitVector: return new CmdUnitVector(kernel, true); case UnitPerpendicularVector: case UnitOrthogonalVector: return new CmdUnitOrthogonalVector(kernel); case Text: return new CmdText(kernel); case Vector: return new CmdVector(kernel); case Dot: return new CmdCAStoOperation(kernel, Operation.MULTIPLY); case Cross: return new CmdCAStoOperation(kernel, Operation.VECTORPRODUCT); case PolyLine: return new CmdPolyLine(kernel); case PointIn: return new CmdPointIn(kernel); case Line: return new CmdLine(kernel); case Ray: return new CmdRay(kernel); case AngleBisector: case AngularBisector: return new CmdAngularBisector(kernel); case Segment: return new CmdSegment(kernel); case Slope: return new CmdSlope(kernel); case Angle: return new CmdAngle(kernel); case Point: return new CmdPoint(kernel); case Midpoint: case Center: return new CmdMidpoint(kernel); case Intersect: return new CmdIntersect(kernel); case Distance: return new CmdDistance(kernel); case Radius: return new CmdRadius(kernel); case Arc: return new CmdArcSector(kernel, GeoConicNDConstants.CONIC_PART_ARC); case Sector: return new CmdArcSector(kernel, GeoConicNDConstants.CONIC_PART_SECTOR); case CircleArc: case CircularArc: return new CmdCircleArcSector(kernel, GeoConicNDConstants.CONIC_PART_ARC); case CircleSector: case CircularSector: return new CmdCircleArcSector(kernel, GeoConicNDConstants.CONIC_PART_SECTOR); case CircumcircleSector: case CircumcircularSector: return new CmdCircumcircleSector(kernel); case CircumcircleArc: case CircumcircularArc: return new CmdCircumcircleArc(kernel); case Polygon: return new CmdPolygon(kernel); case Area: return new CmdArea(kernel); case Circumference: return new CmdCircumference(kernel); case Perimeter: return new CmdPerimeter(kernel); case Locus: return new CmdLocus(kernel); case Vertex: return new CmdVertex(kernel); case If: return new CmdIf(kernel); case Root: return new CmdRoot(kernel); case TurningPoint: return new CmdTurningPoint(kernel); case Polynomial: return new CmdPolynomial(kernel); case Function: return new CmdFunction(kernel); case Curve: case CurveCartesian: return new CmdCurveCartesian(kernel); case LowerSum: return new CmdLowerSum(kernel); case LeftSum: return new CmdLeftSum(kernel); case RectangleSum: return new CmdRectangleSum(kernel); case UpperSum: return new CmdUpperSum(kernel); case TrapezoidalSum: return new CmdTrapezoidalSum(kernel); case Ellipse: return new CmdEllipseHyperbola(kernel, GeoConicNDConstants.CONIC_ELLIPSE); case Hyperbola: return new CmdEllipseHyperbola(kernel, GeoConicNDConstants.CONIC_HYPERBOLA); case Conic: return new CmdConic(kernel); case Circle: return new CmdCircle(kernel); case Semicircle: return new CmdSemicircle(kernel); case Parabola: return new CmdParabola(kernel); case Focus: return new CmdFocus(kernel); case Element: return new CmdElement(kernel); case Sequence: return new CmdSequence(kernel); case Reflect: case Mirror: return new CmdMirror(kernel); case Dilate: return new CmdDilate(kernel); case Rotate: return new CmdRotate(kernel); case Translate: return new CmdTranslate(kernel); case Shear: return new CmdShear(kernel); case Stretch: return new CmdStretch(kernel); case Corner: return new CmdCorner(kernel); case Name: return new CmdName(kernel); case Diameter: case ConjugateDiameter: return new CmdDiameter(kernel); case LineBisector: case PerpendicularBisector: return new CmdLineBisector(kernel); case OrthogonalLine: case PerpendicularLine: return new CmdOrthogonalLine(kernel); case OrthogonalVector: case PerpendicularVector: return new CmdOrthogonalVector(kernel); case Random: return new CmdRandom(kernel); case RandomBetween: return new CmdRandom(kernel); case RandomPointIn: return new CmdRandomPointIn(kernel); case Sum: return new CmdSum(kernel); case Binomial: case BinomialCoefficient: return new CmdBinomial(kernel); case Mod: return new CmdMod(kernel); case Div: return new CmdDiv(kernel); case Min: return new CmdMin(kernel); case Max: return new CmdMax(kernel); case Append: return new CmdAppend(kernel); case First: return new CmdFirst(kernel); case Last: return new CmdLast(kernel); case RemoveUndefined: return new CmdRemoveUndefined(kernel); case Remove: return new CmdRemove(kernel); case Reverse: return new CmdReverse(kernel); case TableText: return new CmdTableText(kernel); case Take: return new CmdTake(kernel); case TextToUnicode: return new CmdTextToUnicode(kernel); case UnicodeToText: return new CmdUnicodeToText(kernel); case FractionText: return new CmdFractionText(kernel); case KeepIf: return new CmdKeepIf(kernel); case IsInteger: return new CmdIsInteger(kernel); case Defined: case IsDefined: return new CmdDefined(kernel); case Spline: return new CmdSpline(kernel); case RoundedPolygon: return kernel.getApplication().has(Feature.ROUNDED_POLYGON) ? new CmdRoundedPolygon( kernel) : null; // case Nyquist: // return new CmdNyquist(kernel); case FormulaText: case LaTeX: return new CmdLaTeX(kernel); default: break; } return null; } }