Examples of ISymbolicCAModelInformation


Examples of org.jamesii.model.carules.symbolic.ISymbolicCAModelInformation

  }

  @Override
  public IDocument<?> toDocument(ISymbolicModel<?> data) {
    StringBuilder builder = new StringBuilder();
    ISymbolicCAModelInformation info =
        (ISymbolicCAModelInformation) data.getAsDataStructure();

    if (info instanceof SymbolicCAModelInformation
        && info.getModelSource() != null) {
      return new CARulesAntlrDocument(info.getModelSource());
    }

    // if not try to create model source from model information

    if (info.getModelComment() != null) {
      builder.append("/**\n");
      builder.append(info.getModelComment() + "\n");
      builder.append("\n*/\n");
    }

    builder.append("@caversion 1;\n");

    if (info.isWolfram()) {
      builder.append("wolframrule " + info.getWolframRule() + ";\n");
    } else {
      builder.append("dimensions " + info.getDimensions() + ";\n");
      if (info.getNeighborhood().getComment() != null) {
        builder.append("/**\n");
        builder.append(info.getNeighborhood().getComment());
        builder.append("\n*/\n");
      }
      if (info.getNeighborhood() instanceof MooreNeighborhood) {
        builder.append("neighborhood moore;\n");
      } else if (info.getNeighborhood() instanceof NeumannNeighborhood) {
        builder.append("neighborhood neumann;\n");
      } else {
        builder.append("neighborhood free {\n");
        INeighborhood n = info.getNeighborhood();
        for (int i = 0; i < n.getCellCount(); i++) {
          int[] cell = n.getCell(i);
          builder.append("                   [");
          for (int d = 0; d < n.getDimensions(); d++) {
            if (d > 0) {
              builder.append(", ");
            }
            builder.append(cell[d]);
          }
          builder.append("]\n");
        }
        builder.append("                  };\n");
      }

      String st = null;
      for (String s : info.getStates()) {
        if (st != null) {
          st += ", ";
        } else {
          st = "";
        }
        st += s;
      }

      builder.append("state " + st + ";\n\n");

      for (CARule rule : info.getRules()) {

        String c = conditionToString(rule.getCurrentCondition(), info);

        String ruleStr = "";

        if (c.length() > 0) {

          ruleStr += "{";

          ruleStr += c;

          ruleStr += "}";
        }

        if (Double.compare(rule.getProbability(), 1.0) != 0) {
          NumberFormat nFormat = NumberFormat.getNumberInstance();
          nFormat.setGroupingUsed(false);
          nFormat.setMaximumFractionDigits(Integer.MAX_VALUE);
          ruleStr +=
              "[" + nFormat.format(rule.getProbability()).replace(',', '.')
                  + "]";
        }

        ruleStr += " : ";

        ruleStr += conditionToString(rule.getPreCondition(), info);

        ruleStr +=
            " -> " + info.getStates().get(rule.getDestinationState()) + ";\n";

        if (rule.getComment() != null) {
          builder.append("/**\n");
          builder.append(rule.getComment());
          builder.append("\n*/\n");
 
View Full Code Here

Examples of org.jamesii.model.carules.symbolic.ISymbolicCAModelInformation

   * @param caModel
   *          The new model.
   */
  public void setCAModel(ISymbolicCAModel caModel) {
    this.caModel = caModel;
    ISymbolicCAModelInformation modelInfo = caModel.getAsDataStructure();
    this.setModel(new StateListModel(modelInfo.getStates()));
  }
View Full Code Here

Examples of org.jamesii.model.carules.symbolic.ISymbolicCAModelInformation

      if (scam == null || scam.getAsDataStructure() == null) {
        return 0;
      }

      ISymbolicCAModelInformation modelInfo = scam.getAsDataStructure();

      if (modelInfo.isWolfram()) {
        return 1;
      }
    }

    return 0;
View Full Code Here

Examples of org.jamesii.model.carules.symbolic.ISymbolicCAModelInformation

    // TODO update grid model accordingly
  }

  @Override
  public void prepareModelSaving() {
    ISymbolicCAModelInformation ds = getModel().getAsDataStructure();

    DefaultSymbolicCAModelInformation mi =
        new DefaultSymbolicCAModelInformation(ds.getDimensions(),
            ds.getNeighborhood(), ds.getRules(), ds.getStates(),
            ds.isWolfram(), gridModel.getIWolframRule(), ds.getModelComment(),
            null);

    getModel().setFromDataStructure(mi);
  }
View Full Code Here

Examples of org.jamesii.model.carules.symbolic.ISymbolicCAModelInformation

   *          The rule to set.
   */
  public void setIWolframRule(int wolframRule) {
    iWolframRule = wolframRule;

    ISymbolicCAModelInformation ds = caModel.getAsDataStructure();

    DefaultSymbolicCAModelInformation mi =
        new DefaultSymbolicCAModelInformation(ds.getDimensions(),
            ds.getNeighborhood(), ds.getRules(), ds.getStates(),
            ds.isWolfram(), wolframRule, ds.getModelComment(), null);

    caModel.setFromDataStructure(mi);
    for (int i = 0; i < 8; i++) {
      fireCellChanged(i, 0);
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.