mirror of
https://github.com/xibyte/jsketcher
synced 2026-01-02 05:48:10 +01:00
splitup is mistaken
This commit is contained in:
parent
4f914c19c7
commit
b95ad3dfd2
3 changed files with 46 additions and 6 deletions
|
|
@ -5,6 +5,7 @@ import cad.gcs.GlobalSolver;
|
|||
import cad.gcs.Param;
|
||||
import cad.gcs.Solver;
|
||||
import cad.gcs.constr.Equal;
|
||||
import cad.gcs.constr.EqualsTo;
|
||||
import cad.gcs.constr.Parallel;
|
||||
import cad.gcs.constr.Perpendicular;
|
||||
import gnu.trove.map.TIntObjectMap;
|
||||
|
|
@ -37,7 +38,7 @@ public class SolveServer {
|
|||
|
||||
ResourceHandler rh = new ResourceHandler();
|
||||
rh.setDirectoriesListed(true);
|
||||
rh.setResourceBase("/home/verastov/Dropbox/project/cadit/web");
|
||||
rh.setResourceBase("/home/xibyte/Dropbox/project/cadit/web");
|
||||
handlers.addHandler(rh);
|
||||
|
||||
server.setHandler(handlers);
|
||||
|
|
@ -118,7 +119,9 @@ class SolveHandler extends AbstractHandler {
|
|||
}
|
||||
|
||||
for (int i = 0; i < locked.length(); i++) {
|
||||
// paramsDict.get(locked.getInt(i)).setLocked(true);
|
||||
Param param = paramsDict.get(locked.getInt(i));
|
||||
// param.setLocked(true);
|
||||
constraints.add(new EqualsTo(param, param.get()));
|
||||
}
|
||||
|
||||
Solver.SubSystem subSystem = new Solver.SubSystem(constraints);
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import java.util.List;
|
|||
|
||||
public class GlobalSolver {
|
||||
|
||||
public static void globalSolve2(Solver.SubSystem subSystem, Runnable linearSolvedCallback) {
|
||||
public static void globalSolve(Solver.SubSystem subSystem, Runnable linearSolvedCallback) {
|
||||
|
||||
// for (Constraint c : subSystem.constraints) {
|
||||
// if (c instanceof Reconcilable) {
|
||||
|
|
@ -44,7 +44,7 @@ public class GlobalSolver {
|
|||
}
|
||||
}
|
||||
|
||||
public static void globalSolve(Solver.SubSystem subSystem, Runnable linearSolvedCallback) {
|
||||
public static void globalSolve2(Solver.SubSystem subSystem, Runnable linearSolvedCallback) {
|
||||
|
||||
|
||||
double eps = 0.0001;
|
||||
|
|
@ -55,12 +55,14 @@ public class GlobalSolver {
|
|||
for (Solver.SubSystem system : subSystems) {
|
||||
java.lang.System.out.println("Solve subsystem: " + subSystem.value());
|
||||
solveLM_COMMONS(system);
|
||||
Solver.solve_BFGS(subSystem, false);
|
||||
Solver.solve_LM(subSystem);
|
||||
// Solver.solve_BFGS(system, false);
|
||||
// Solver.solve_LM(system);
|
||||
java.lang.System.out.println("Subsystem solved: " + subSystem.value());
|
||||
linearSolvedCallback.run();
|
||||
}
|
||||
linearSolvedCallback.run();
|
||||
|
||||
// globalSolve2(subSystem, linearSolvedCallback);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
35
src/cad/gcs/constr/EqualsTo.java
Normal file
35
src/cad/gcs/constr/EqualsTo.java
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
package cad.gcs.constr;
|
||||
|
||||
import cad.gcs.Constraint;
|
||||
import cad.gcs.Param;
|
||||
|
||||
public class EqualsTo implements Constraint {
|
||||
|
||||
private final Param[] params;
|
||||
private final double value;
|
||||
|
||||
public EqualsTo(Param p, double value) {
|
||||
this.value = value;
|
||||
this.params = new Param[]{p};
|
||||
}
|
||||
|
||||
@Override
|
||||
public double error() {
|
||||
return params[0].get() - value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Param[] getParams() {
|
||||
return params;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gradient(double[] out) {
|
||||
out[0] = 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int pSize() {
|
||||
return params.length;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue