[x3d-public] Better approachs, was: Re: Java SOCKS! jsail/Navigation/OrthoViewpoint.java in X3DJSAIL

John Carlson yottzumm at gmail.com
Wed Jul 30 00:33:12 PDT 2025


Here's a Immutable Double List.  Maybe code like this could
improve immutability in X3DJSAIL?  I don't know why it doesn't work with
Float.

This, by my eyes, works.   I just don't know what to do with floats, except
copy stuff.  Maybe we should be copying in the first place?

import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
import java.util.Collections;

public class NoModDoubleArray {
  public static final double[] DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE = new
double [] {-1f,-1f,1f,1f};
  public final List<Double> NOMOD_FIELDOFVIEW_DEFAULT_VALUE;
  public List<Double> MOD_FIELDOFVIEW;
  public NoModDoubleArray() {
    NOMOD_FIELDOFVIEW_DEFAULT_VALUE =
Collections.unmodifiableList(Arrays.asList(Arrays.stream(DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE).boxed().toArray(Double[]::new)));
    MOD_FIELDOFVIEW =
Arrays.asList(Arrays.stream(DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE).boxed().toArray(Double[]::new));
    System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);
  try {
    System.out.println("Setting immutable index 0 to 0.0");
    NOMOD_FIELDOFVIEW_DEFAULT_VALUE.set(0, 0.0);
  } catch (UnsupportedOperationException ex) {
    ex.printStackTrace();
  }
  System.out.println("Setting double array index 0 to 0.0");
  DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE[0] = 0.0;
  System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);
  System.out.println("Mutable Array "+MOD_FIELDOFVIEW);
  System.out.println("Compare mutable to immutable
"+MOD_FIELDOFVIEW.equals(NOMOD_FIELDOFVIEW_DEFAULT_VALUE));
  System.out.println("Setting mutable index 0 to 0.0");
  MOD_FIELDOFVIEW.set(0, 0.0);
  System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);
  System.out.println("Mutable Array "+MOD_FIELDOFVIEW);
  System.out.println("Compare mutable to immutable
"+MOD_FIELDOFVIEW.equals(NOMOD_FIELDOFVIEW_DEFAULT_VALUE));
  System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);
}
public static void main(String[] args) {
  new NoModDoubleArray();
}
}

>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250730/a1d383dc/attachment.html>


More information about the x3d-public mailing list