// Sin.java package lt.ktu.gmj.tasks; import lt.ktu.gmj.*; import lt.ktu.gmj.propertySheet.*; class SinDomain extends DomainWithConstraint { static final String []dimensions={ "X Sin Argument", "Y Sin Argument", "Dummy" }; public String[] dimensions () { return dimensions; } SinDomain () { min[0]=min[1]=min[2]=-2; max[0]=max[1]=max[2]= 2; defaultPoint.x[0]=0; defaultPoint.x[1]=0; defaultPoint.x[2]=0; } }; public class Sin extends AbstractTask implements TaskWithAnalyzers { private SinDomain domain=new SinDomain(); public double multiplier=1; public int function=1; public void customize (PropertyManager manager) { String []functions={ "sin", "cos" }; manager.add ( new DoubleProperty("Multiplier", new FieldProvider(this, "multiplier"), 0.1, 1000)); manager.add ( new ChoiceProperty("Function", new FieldProvider(this, "function"), functions )); } public Domain domain () { return domain; } public double f (Point pt) { return function==0 ? Math.sin (pt.x[0]*pt.x[0]+pt.x[1]*pt.x[1])*multiplier : Math.cos (pt.x[0]*pt.x[0]+pt.x[1]*pt.x[1])*multiplier; } public Class[] analyzers () throws ClassNotFoundException { Class spectrumClass=Class.forName("lt.ktu.gmj.analysis.Spectrum"); return new Class[]{ spectrumClass }; } };