Beispiel #1
0
 protected double internalForceLaw(
     double x,
     double
         theLatticeSpacing) { // gives the restoring force of a spring when it is stretched d units
                              // from equilibrium
   return a.getValue() * (Math.exp(-b.getValue() * x) - 1) / (16 * theLatticeSpacing);
 }
Beispiel #2
0
 protected double potentialEnergy(
     double x,
     double
         theLatticeSpacing) { // gives the potential energy of a spring that joins the nodes. d is
                              // displacement from equilibrium
   return ((a.getValue() / b.getValue()) * (Math.exp(-b.getValue() * x) - 1) + a.getValue() * x)
       / (16 * theLatticeSpacing); // ( (a/b) (exp(-b x) -1) + a x)/(16*latticeSpacing)
 }
 protected boolean doOK() {
   String error = input.checkContents();
   if (error != null) {
     JOptionPane.showMessageDialog(
         this, error, I18n.tr("vmm.core.SettingsDialog.errorTitle"), JOptionPane.ERROR_MESSAGE);
     return false;
   }
   input.setValueFromContents();
   double sep = multiplier.getValue();
   if (sep != originalVal) {
     Prefs.putDouble("eyeSeparationMultiplier", sep);
     if (view.getViewStyle() == View3D.RED_GREEN_STEREO_VIEW
         || view.getViewStyle() == View3D.STEREOGRAPH_VIEW
         || view.getViewStyle() == View3D.CROSS_EYE_STEREO_VIEW) view.forceRedraw();
   }
   if (defaultAnaglyphButton.isSelected()) Prefs.put("view3d.initialAnaglyphMode", "default");
   else if (alwaysAnaglyphButton.isSelected()) {
     if (view.getViewStyle() == View3D.MONOCULAR_VIEW)
       view.setViewStyle(View3D.RED_GREEN_STEREO_VIEW);
     Prefs.put("view3d.initialAnaglyphMode", "always");
   } else if (neverAnaglyphButton.isSelected()) {
     if (view.getViewStyle() == View3D.RED_GREEN_STEREO_VIEW)
       view.setViewStyle(View3D.MONOCULAR_VIEW);
     Prefs.put("view3d.initialAnaglyphMode", "never");
   }
   if (moveObjectsForwardInAnaglyphToggle.isSelected()) {
     if (view.getViewStyle() == View3D.RED_GREEN_STEREO_VIEW && view.getTransform3D() != null) {
       double extent =
           Math.max(
               view.getTransform3D().getXmaxRequested() - view.getTransform3D().getXminRequested(),
               view.getTransform3D().getYmaxRequested()
                   - view.getTransform3D().getYminRequested());
       view.getTransform3D().setObjectDisplacementNormalToScreen(extent / 3);
     }
     Prefs.put("view3d.moveObjectsForwardInAnaglyph", "yes");
   } else {
     if (view.getViewStyle() == View3D.RED_GREEN_STEREO_VIEW && view.getTransform3D() != null)
       view.getTransform3D().setObjectDisplacementNormalToScreen(0);
     Prefs.put("view3d.moveObjectsForwardInAnaglyph", "no");
   }
   return true;
 }