Exemple #1
0
  public void initialize() {
    // System.out.println("Creating Fence geometry");
    int num = 0;
    int len = startField.getSize();
    float[] start = new float[3];
    float[] end = new float[3];
    float height;

    // One shape for a panel, panelTop and post, post Top
    int shape_groups = 4;

    int num_panels = len;
    int num_panels_per_shape = fencesPerShapeField.getValue();
    int num_shapes = (num_panels / num_panels_per_shape) * shape_groups;
    int num_posts_per_shape = num_panels_per_shape;

    // System.out.println("Number of posts: " + len);
    // System.out.println("Number of panels: " + num_panels);
    // System.out.println("Number of shapes: " + num_shapes);
    // System.out.println("Number of panels per shape: " + num_panels_per_shape);
    // System.out.println("Number of posts per shape: " + num_posts_per_shape);

    X3DNode[] shapes = new X3DNode[num_shapes];

    X3DExecutionContext mainScene = browser.getExecutionContext();

    // Create a common Appearance to share

    X3DNode[] appearances = new X3DNode[appearanceField.getSize()];
    appearanceField.getValue(appearances);

    X3DNode panel_appearance = appearances[panelAppearanceField.getValue()];
    X3DNode panelTop_appearance = appearances[panelTopAppearanceField.getValue()];
    X3DNode panelRail_appearance = appearances[panelRailAppearanceField.getValue()];
    X3DNode post_appearance = appearances[postAppearanceField.getValue()];
    X3DNode postTop_appearance = appearances[postTopAppearanceField.getValue()];

    int shape_idx = 0;

    // Create Panels

    X3DNode[] new_shapes =
        createSegmentGeom(
            mainScene,
            panel_appearance,
            postField,
            postGeometryField,
            panelHeightField,
            startField,
            endField,
            false,
            null,
            len,
            (num_shapes / shape_groups),
            num_posts_per_shape,
            true,
            true,
            1,
            1);

    for (int i = 0; i < new_shapes.length; i++) {
      shapes[shape_idx++] = new_shapes[i];
    }

    // Create PanelTops
    new_shapes =
        createSegmentGeom(
            mainScene,
            panelTop_appearance,
            postField,
            postGeometryField,
            panelTopHeightField,
            startField,
            endField,
            true,
            panelHeightField,
            len,
            (num_shapes / shape_groups),
            num_posts_per_shape,
            true,
            true,
            15,
            10);

    for (int i = 0; i < new_shapes.length; i++) {
      X3DNode panel_shape = mainScene.createNode("Shape");
      shapes[shape_idx++] = new_shapes[i];
    }

    // Create Posts
    new_shapes =
        createVertexGeom(
            mainScene,
            post_appearance,
            postField,
            postGeometryField,
            postSizeField,
            startField,
            endField,
            false,
            null,
            (num_shapes / shape_groups),
            num_posts_per_shape);

    for (int i = 0; i < new_shapes.length; i++) {
      X3DNode panel_shape = mainScene.createNode("Shape");
      shapes[shape_idx++] = new_shapes[i];
    }

    // Create PostTops
    new_shapes =
        createVertexGeom(
            mainScene,
            postTop_appearance,
            postTopField,
            postTopGeometryField,
            postTopSizeField,
            startField,
            endField,
            true,
            postSizeField,
            (num_shapes / shape_groups),
            num_posts_per_shape);

    for (int i = 0; i < new_shapes.length; i++) {
      shapes[shape_idx++] = new_shapes[i];
    }

    childrenField.setValue(shapes.length, shapes);

    // System.out.println("Done creating fence geometry");
  }
 /**
  * Return the topTexture value in the argument X3DNode[]
  *
  * @param val The X3DNode[] to initialize.
  */
 public void getTopTexture(X3DNode[] val) {
   if (topTexture == null) {
     topTexture = (MFNode) getField("topTexture");
   }
   topTexture.getValue(val);
 }
 /**
  * Return the textureTransform value in the argument X3DNode[]
  *
  * @param val The X3DNode[] to initialize.
  */
 public void getTextureTransform(X3DNode[] val) {
   if (textureTransform == null) {
     textureTransform = (MFNode) getField("textureTransform");
   }
   textureTransform.getValue(val);
 }
 /**
  * Return the bottomTexture value in the argument X3DNode[]
  *
  * @param val The X3DNode[] to initialize.
  */
 public void getBottomTexture(X3DNode[] val) {
   if (bottomTexture == null) {
     bottomTexture = (MFNode) getField("bottomTexture");
   }
   bottomTexture.getValue(val);
 }
 /**
  * Return the rightTexture value in the argument X3DNode[]
  *
  * @param val The X3DNode[] to initialize.
  */
 public void getRightTexture(X3DNode[] val) {
   if (rightTexture == null) {
     rightTexture = (MFNode) getField("rightTexture");
   }
   rightTexture.getValue(val);
 }
 /**
  * Return the leftTexture value in the argument X3DNode[]
  *
  * @param val The X3DNode[] to initialize.
  */
 public void getLeftTexture(X3DNode[] val) {
   if (leftTexture == null) {
     leftTexture = (MFNode) getField("leftTexture");
   }
   leftTexture.getValue(val);
 }
 /**
  * Return the frontTexture value in the argument X3DNode[]
  *
  * @param val The X3DNode[] to initialize.
  */
 public void getFrontTexture(X3DNode[] val) {
   if (frontTexture == null) {
     frontTexture = (MFNode) getField("frontTexture");
   }
   frontTexture.getValue(val);
 }
 /**
  * Return the backTexture value in the argument X3DNode[]
  *
  * @param val The X3DNode[] to initialize.
  */
 public void getBackTexture(X3DNode[] val) {
   if (backTexture == null) {
     backTexture = (MFNode) getField("backTexture");
   }
   backTexture.getValue(val);
 }