Commit 7cf7b5d8 authored by iSergio's avatar iSergio
Browse files

Remove jquery slider. New slider realization based on html5 input range

parent 12fb74bf
Loading
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import jsinterop.annotations.JsType;
import org.cesiumjs.cs.collections.CloudCollection;
import org.cesiumjs.cs.core.Cartesian2;
import org.cesiumjs.cs.core.Cartesian3;
import org.cesiumjs.cs.core.Color;

/**
 * A cumulus cloud billboard positioned in the 3D scene, that is created and rendered using a CloudCollection.
@@ -41,6 +42,12 @@ public class CumulusCloud {
     */
    @JsProperty
    public float brightness;
    /**
     * Sets the color of the cloud.
     * Default: {@link Color#WHITE()}
     */
    @JsProperty
    public Color color;
    /**
     * Gets or sets the maximum size of the cumulus cloud rendered on the billboard. This defines a maximum ellipsoid
     * volume that the cloud can appear in. Rather than guaranteeing a specific size, this specifies a boundary for
+47 −67
Original line number Diff line number Diff line
@@ -32,9 +32,8 @@ import org.cesiumjs.cs.scene.PostProcessStageLibrary;
import org.cesiumjs.cs.widgets.ViewerPanel;
import org.cleanlogic.cesiumjs4gwt.showcase.basic.AbstractExample;
import org.cleanlogic.cesiumjs4gwt.showcase.components.store.ShowcaseExampleStore;
import org.cleanlogic.cesiumjs4gwt.showcase.examples.slider.Slider;
import org.cleanlogic.cesiumjs4gwt.showcase.examples.slider.SliderEvent;
import org.cleanlogic.cesiumjs4gwt.showcase.examples.slider.SliderListener;
import org.cleanlogic.cesiumjs4gwt.showcase.examples.slider.InputEvent;
import org.cleanlogic.cesiumjs4gwt.showcase.examples.slider.SliderBox;

import javax.inject.Inject;

@@ -46,16 +45,16 @@ public class AmbientOcclusion extends AbstractExample {

    private CheckBox ambientOcclusionCBox;
    private CheckBox ambientOcclusionOnlyCBox;
    private Slider intensitySlider;
    private Slider lengthCapSlider;
    private Slider stepSizeSlider;
    private Slider biasSlider;
    private Slider blurStepSize;
    private SliderBox intensitySlider;
    private SliderBox lengthCapSlider;
//    private SliderBox stepSizeSlider;
//    private SliderBox biasSlider;
//    private SliderBox blurStepSize;

    @Inject
    public AmbientOcclusion(ShowcaseExampleStore store) {
        super("Ambient Occlusion", "Ambient Occlusion", new String[]{
                "Showcase", "Cesium", "3d", "Post processing"
                "Showcase", "Cesium", "3d", "Post processing", "ambient occlusion"
        }, store);
    }

@@ -82,30 +81,25 @@ public class AmbientOcclusion extends AbstractExample {
        ambientOcclusionOnlyCBox.setValue(false);
        ambientOcclusionOnlyCBox.addValueChangeHandler(new MValueChangeHandler());

        intensitySlider = new Slider("intensitySlider", 1, 10, 3);
        intensitySlider.setStep(1);
        intensitySlider = new SliderBox(1.0, 3.0, 10.0, 1.0);
        intensitySlider.setWidth("150px");
        intensitySlider.addListener(new MSliderListener());
        intensitySlider.addInputHandler(this::updatePostProcess);

        lengthCapSlider = new Slider("lengthCapSlider", 0, 100, 3);
        lengthCapSlider.setStep(1);
        lengthCapSlider = new SliderBox(0.0, 0.03, 1.0, 0.01);
        lengthCapSlider.setWidth("150px");
        lengthCapSlider.addListener(new MSliderListener());
        lengthCapSlider.addInputHandler(this::updatePostProcess);

        stepSizeSlider = new Slider("stepSizeSlider", 100, 1000, 1);
        stepSizeSlider.setStep(1);
        stepSizeSlider.setWidth("150px");
        stepSizeSlider.addListener(new MSliderListener());

        biasSlider = new Slider("biasSlider", 0, 100, 1);
        biasSlider.setStep(1);
        biasSlider.setWidth("150px");
        biasSlider.addListener(new MSliderListener());

        blurStepSize = new Slider("blurStepSize", 0, 400, 86);
        blurStepSize.setStep(1);
        blurStepSize.setWidth("150px");
        blurStepSize.addListener(new MSliderListener());
//        stepSizeSlider = new SliderBox(1.0, 1.0, 10.0, 0.01);
//        stepSizeSlider.setWidth("150px");
//        stepSizeSlider.addInputHandler(this::updatePostProcess);
//
//        biasSlider = new SliderBox(0.0, 0.1, 1.0, 0.01);
//        biasSlider.setWidth("150px");
//        biasSlider.addInputHandler(this::updatePostProcess);
//
//        blurStepSize = new SliderBox(0.0, 0.86, 4.0, 0.01);
//        blurStepSize.setWidth("150px");
//        blurStepSize.addInputHandler(this::updatePostProcess);

        FlexTable flexTable = new FlexTable();
        flexTable.setHTML(1, 0, "<font color=\"white\">Ambient Occlusion</font>");
@@ -116,12 +110,12 @@ public class AmbientOcclusion extends AbstractExample {
        flexTable.setWidget(3, 1, intensitySlider);
        flexTable.setHTML(4, 0, "<font color=\"white\">Length Cap</font>");
        flexTable.setWidget(4, 1, lengthCapSlider);
        flexTable.setHTML(5, 0, "<font color=\"white\">Step Size</font>");
        flexTable.setWidget(5, 1, stepSizeSlider);
        flexTable.setHTML(6, 0, "<font color=\"white\">Bias</font>");
        flexTable.setWidget(6, 1, biasSlider);
        flexTable.setHTML(7, 0, "<font color=\"white\">Blur Step Size</font>");
        flexTable.setWidget(7, 1, blurStepSize);
//        flexTable.setHTML(5, 0, "<font color=\"white\">Step Size</font>");
//        flexTable.setWidget(5, 1, stepSizeSlider);
//        flexTable.setHTML(6, 0, "<font color=\"white\">Bias</font>");
//        flexTable.setWidget(6, 1, biasSlider);
//        flexTable.setHTML(7, 0, "<font color=\"white\">Blur Step Size</font>");
//        flexTable.setWidget(7, 1, blurStepSize);

        AbsolutePanel absPanel = new AbsolutePanel();
        absPanel.add(csVPanel);
@@ -131,24 +125,33 @@ public class AmbientOcclusion extends AbstractExample {
        contentPanel.add(absPanel);

        initWidget(contentPanel);
        updatePostProcess();

        org.cesiumjs.cs.scene.Camera camera = csVPanel.getViewer().scene().camera();
        camera.position = new Cartesian3(1234127.2294710164, -5086011.666443127, 3633337.0413351045);
        camera.direction = new Cartesian3(-0.5310064396211631, -0.30299013818088416, -0.7913464078682514);
        camera.right = new Cartesian3(-0.8468592075426076, 0.1574051185945647, 0.507989282604011);
        camera.up = Cartesian3.cross(camera.right, camera.direction, new Cartesian3());

        updatePostProcess(null);
    }

    private void updatePostProcess() {
    private void updatePostProcess(InputEvent event) {
//        if (event != null) {
//            SliderBox source = (SliderBox) event.getSource();
//            double value = Double.parseDouble(source.getValue());
//            GWT.log(value + " - " + intensitySlider.getValue());
//            return;
//        }
//        GWT.log(intensitySlider.getValue() + " - " + lengthCapSlider.getValue() + " - " + blurStepSize.getValue());

        PostProcessStageComposite ambientOcclusion = csVPanel.getViewer().scene().postProcessStages.ambientOcclusion();
        ambientOcclusion.enabled = ambientOcclusionCBox.getValue() || ambientOcclusionOnlyCBox.getValue();
        ambientOcclusion.uniforms.setProperty("ambientOcclusionOnly", ambientOcclusionOnlyCBox.getValue());
        ambientOcclusion.uniforms.setProperty("intensity", intensitySlider.getValue());
        ambientOcclusion.uniforms.setProperty("bias", biasSlider.getValue() / 100.0);
        ambientOcclusion.uniforms.setProperty("lengthCap", lengthCapSlider.getValue() / 100.0);
        ambientOcclusion.uniforms.setProperty("stepSize", stepSizeSlider.getValue() / 100.0);
        ambientOcclusion.uniforms.setProperty("blurStepSize", blurStepSize.getValue() / 100.0);
        ambientOcclusion.uniforms.setProperty("intensity", Double.parseDouble(intensitySlider.getValue()));
//        ambientOcclusion.uniforms.setProperty("bias", Double.parseDouble(biasSlider.getValue()));
        ambientOcclusion.uniforms.setProperty("lengthCap", Double.parseDouble(lengthCapSlider.getValue()));
//        ambientOcclusion.uniforms.setProperty("stepSize", Double.parseDouble(stepSizeSlider.getValue()));
//        ambientOcclusion.uniforms.setProperty("blurStepSize", Double.parseDouble(blurStepSize.getValue()));
    }

    @Override
@@ -161,30 +164,7 @@ public class AmbientOcclusion extends AbstractExample {
    private class MValueChangeHandler implements ValueChangeHandler<Boolean> {
        @Override
        public void onValueChange(ValueChangeEvent<Boolean> event) {
            updatePostProcess();
        }
    }

    private class MSliderListener implements SliderListener {
        @Override
        public void onStart(SliderEvent e) {
            //
        }

        @Override
        public boolean onSlide(SliderEvent e) {
            updatePostProcess();
            return true;
        }

        @Override
        public void onChange(SliderEvent e) {
            //
        }

        @Override
        public void onStop(SliderEvent e) {
            //
            updatePostProcess(null);
        }
    }
}
+30 −59
Original line number Diff line number Diff line
@@ -34,27 +34,21 @@ import org.cesiumjs.cs.scene.PostProcessStageComposite;
import org.cesiumjs.cs.widgets.ViewerPanel;
import org.cleanlogic.cesiumjs4gwt.showcase.basic.AbstractExample;
import org.cleanlogic.cesiumjs4gwt.showcase.components.store.ShowcaseExampleStore;
import org.cleanlogic.cesiumjs4gwt.showcase.examples.slider.Slider;
import org.cleanlogic.cesiumjs4gwt.showcase.examples.slider.SliderEvent;
import org.cleanlogic.cesiumjs4gwt.showcase.examples.slider.SliderListener;
import org.cleanlogic.cesiumjs4gwt.showcase.examples.slider.InputEvent;
import org.cleanlogic.cesiumjs4gwt.showcase.examples.slider.SliderBox;

/**
 * @author Serge Silaev aka iSergio
 */
public class Bloom extends AbstractExample {
    private final int numberOfBalloons = 13;
    private final double lonIncrement = 0.00025;
    private final double initialLon = -122.99875;
    private final double lat = 44.0503706;
    private final double height = 100.0;
    private ViewerPanel csVPanel;
    private CheckBox bloomCBox;
    private CheckBox glowOnlyCBox;
    private Slider contrastSlider;
    private Slider brightnessSlider;
    private Slider deltaSlider;
    private Slider sigmaSlider;
    private Slider stepSizeSlider;
    private SliderBox contrastSlider;
    private SliderBox brightnessSlider;
    private SliderBox deltaSlider;
    private SliderBox sigmaSlider;
    private SliderBox stepSizeSlider;

    @Inject
    public Bloom(ShowcaseExampleStore store) {
@@ -66,6 +60,11 @@ public class Bloom extends AbstractExample {
    public void buildPanel() {
        csVPanel = new ViewerPanel();

        int numberOfBalloons = 13;
        double lonIncrement = 0.00025;
        double initialLon = -122.99875;
        double lat = 44.0503706;
        double height = 100.0;
        for (int i = 0; i < numberOfBalloons; i++) {
            double lon = initialLon + i * lonIncrement;
            createModel(lon, lat, height);
@@ -79,30 +78,25 @@ public class Bloom extends AbstractExample {
        glowOnlyCBox.setValue(false);
        glowOnlyCBox.addValueChangeHandler(new MValueChangeHandler());

        contrastSlider = new Slider("contrastSlider", -25500, 25500, 12800);
        contrastSlider.setStep(1);
        contrastSlider = new SliderBox(-255, 128, 255, 0.01);
        contrastSlider.setWidth("150px");
        contrastSlider.addListener(new MSliderListener());
        contrastSlider.addInputHandler(this::updatePostProcess);

        brightnessSlider = new Slider("brightnessSlider", -100, 100, -30);
        brightnessSlider.setStep(1);
        brightnessSlider = new SliderBox(-1, -0.3, 1, 0.01);
        brightnessSlider.setWidth("150px");
        brightnessSlider.addListener(new MSliderListener());
        brightnessSlider.addInputHandler(this::updatePostProcess);

        deltaSlider = new Slider("deltaSlider", 100, 500, 100);
        deltaSlider.setStep(1);
        deltaSlider = new SliderBox(1, 1, 5, 0.01);
        deltaSlider.setWidth("150px");
        deltaSlider.addListener(new MSliderListener());
        deltaSlider.addInputHandler(this::updatePostProcess);

        sigmaSlider = new Slider("sigmaSlider", 100, 1000, 378);
        sigmaSlider.setStep(1);
        sigmaSlider = new SliderBox(1, 3.78, 10, 0.01);
        sigmaSlider.setWidth("150px");
        sigmaSlider.addListener(new MSliderListener());
        sigmaSlider.addInputHandler(this::updatePostProcess);

        stepSizeSlider = new Slider("stepSizeSlider", 0, 700, 500);
        stepSizeSlider.setStep(1);
        stepSizeSlider = new SliderBox(0, 5, 7, 0.01);
        stepSizeSlider.setWidth("150px");
        stepSizeSlider.addListener(new MSliderListener());
        stepSizeSlider.addInputHandler(this::updatePostProcess);

        FlexTable flexTable = new FlexTable();
        flexTable.setHTML(1, 0, "<font color=\"white\">Bloom</font>");
@@ -128,7 +122,7 @@ public class Bloom extends AbstractExample {
        contentPanel.add(absPanel);

        initWidget(contentPanel);
        updatePostProcess();
        updatePostProcess(null);

        Cartesian3 target = Cartesian3.fromDegrees(initialLon + lonIncrement, lat, height + 7.5);
        Cartesian3 offset = new Cartesian3(-37.048378684557974, -24.852967044804245, 4.352023653686047);
@@ -148,15 +142,15 @@ public class Bloom extends AbstractExample {
        csVPanel.getViewer().entities().add(options);
    }

    private void updatePostProcess() {
    private void updatePostProcess(InputEvent event) {
        PostProcessStageComposite bloom = csVPanel.getViewer().scene().postProcessStages.bloom();
        bloom.enabled = bloomCBox.getValue();
        bloom.uniforms.setProperty("glowOnly", glowOnlyCBox.getValue());
        bloom.uniforms.setProperty("contrast", contrastSlider.getValue() / 100.0);
        bloom.uniforms.setProperty("brightness", brightnessSlider.getValue() / 100.0);
        bloom.uniforms.setProperty("delta", deltaSlider.getValue() / 100.0);
        bloom.uniforms.setProperty("sigma", sigmaSlider.getValue() / 100.0);
        bloom.uniforms.setProperty("stepSize", stepSizeSlider.getValue() / 100.0);
        bloom.uniforms.setProperty("contrast", Double.parseDouble(contrastSlider.getValue()));
        bloom.uniforms.setProperty("brightness", Double.parseDouble(brightnessSlider.getValue()));
        bloom.uniforms.setProperty("delta", Double.parseDouble(deltaSlider.getValue()));
        bloom.uniforms.setProperty("sigma", Double.parseDouble(sigmaSlider.getValue()));
        bloom.uniforms.setProperty("stepSize", Double.parseDouble(stepSizeSlider.getValue()));
    }

    @Override
@@ -169,30 +163,7 @@ public class Bloom extends AbstractExample {
    private class MValueChangeHandler implements ValueChangeHandler<Boolean> {
        @Override
        public void onValueChange(ValueChangeEvent<Boolean> event) {
            updatePostProcess();
        }
    }

    private class MSliderListener implements SliderListener {
        @Override
        public void onStart(SliderEvent e) {
            //
        }

        @Override
        public boolean onSlide(SliderEvent e) {
            updatePostProcess();
            return true;
        }

        @Override
        public void onChange(SliderEvent e) {
            //
        }

        @Override
        public void onStop(SliderEvent e) {
            //
            updatePostProcess(null);
        }
    }
}
+122 −126

File changed.

Preview size limit exceeded, changes collapsed.

+37 −62
Original line number Diff line number Diff line
@@ -38,9 +38,8 @@ import org.cesiumjs.cs.scene.enums.VerticalOrigin;
import org.cesiumjs.cs.widgets.ViewerPanel;
import org.cleanlogic.cesiumjs4gwt.showcase.basic.AbstractExample;
import org.cleanlogic.cesiumjs4gwt.showcase.components.store.ShowcaseExampleStore;
import org.cleanlogic.cesiumjs4gwt.showcase.examples.slider.Slider;
import org.cleanlogic.cesiumjs4gwt.showcase.examples.slider.SliderEvent;
import org.cleanlogic.cesiumjs4gwt.showcase.examples.slider.SliderListener;
import org.cleanlogic.cesiumjs4gwt.showcase.examples.slider.InputEvent;
import org.cleanlogic.cesiumjs4gwt.showcase.examples.slider.SliderBox;

import javax.inject.Inject;

@@ -49,13 +48,13 @@ import javax.inject.Inject;
 */
public class Clustering extends AbstractExample {
    private ViewerPanel csVPanel;
    private Slider pixelRangeSlider;
    private SliderBox pixelRangeSlider;
    private TextBox pixelRangeTBox;
    private Slider minimumClusterSizeSlider;
    private SliderBox minimumClusterSizeSlider;
    private TextBox minimumClusterSizeTBox;

    private Event.RemoveCallback removeListener;
    private KmlDataSource _dataSource;
    private KmlDataSource dataSource;

    private String pin50;
    private String pin40;
@@ -102,14 +101,13 @@ public class Clustering extends AbstractExample {
                // start with custom style
                customStyle(dataSource);

                _dataSource = dataSource;
                dataSource = dataSource;
            }
        });

        pixelRangeSlider = new Slider("pixelRange", 1, 200, 15);
        pixelRangeSlider.setStep(1);
        pixelRangeSlider = new SliderBox(1, 15, 200, 1);
        pixelRangeSlider.setWidth("150px");
        pixelRangeSlider.addListener(new MSliderListener());
        pixelRangeSlider.addInputHandler(this::onInput);
        pixelRangeTBox = new TextBox();
        pixelRangeTBox.addChangeHandler(new MChangeHandler());
        pixelRangeTBox.setText("" + 15);
@@ -122,10 +120,10 @@ public class Clustering extends AbstractExample {
        pixelRangeHPanel.add(pixelRangeSlider);
        pixelRangeHPanel.add(pixelRangeTBox);

        minimumClusterSizeSlider = new Slider("minimumClusterSize", 1, 20, 3);
        minimumClusterSizeSlider = new SliderBox(2, 3, 20, 1);
        minimumClusterSizeSlider.setStep(1);
        minimumClusterSizeSlider.setWidth("150px");
        minimumClusterSizeSlider.addListener(new MSliderListener());
        minimumClusterSizeSlider.addInputHandler(this::onInput);
        minimumClusterSizeTBox = new TextBox();
        pixelRangeTBox.addChangeHandler(new MChangeHandler());
        minimumClusterSizeTBox.setText("" + 3);
@@ -143,7 +141,7 @@ public class Clustering extends AbstractExample {
        enabledCBox.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
            @Override
            public void onValueChange(ValueChangeEvent<Boolean> valueChangeEvent) {
                _dataSource.clustering.enabled = valueChangeEvent.getValue();
                dataSource.clustering.enabled = valueChangeEvent.getValue();
            }
        });

@@ -152,7 +150,7 @@ public class Clustering extends AbstractExample {
        customStyleCBox.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
            @Override
            public void onValueChange(ValueChangeEvent<Boolean> valueChangeEvent) {
                customStyle(_dataSource);
                customStyle(dataSource);
            }
        });

@@ -188,9 +186,7 @@ public class Clustering extends AbstractExample {
            removeListener.function();
            removeListener = (Event.RemoveCallback) JsObject.undefined();
        } else {
            removeListener = dataSource.clustering.clusterEvent.addEventListener(new EntityCluster.newClusterCallback() {
                @Override
                public void function(Entity[] clusteredEntities, EntityClusterObject cluster) {
            removeListener = dataSource.clustering.clusterEvent.addEventListener((EntityCluster.newClusterCallback) (clusteredEntities, cluster) -> {
                cluster.label.show = false;
                cluster.billboard.show = true;
                cluster.billboard.verticalOrigin = VerticalOrigin.BOTTOM();
@@ -207,7 +203,6 @@ public class Clustering extends AbstractExample {
                } else {
                    cluster.billboard.image = singleDigitPins[clusteredEntities.length - 2];
                }
                }
            });
        }
        // force a re-cluster with the new styling
@@ -216,36 +211,16 @@ public class Clustering extends AbstractExample {
        dataSource.clustering.pixelRange = pixelRange;
    }

    private class MSliderListener implements SliderListener {

        @Override
        public void onStart(SliderEvent e) {

        }

        @Override
        public boolean onSlide(SliderEvent e) {
            Slider source = e.getSource();
            int value = source.getValue();
    private void onInput(InputEvent event) {
        SliderBox source = (SliderBox) event.getSource();
        double value = Double.parseDouble(source.getValue());
        if (source.getElement().getId().equalsIgnoreCase("pixelRange")) {
                _dataSource.clustering.pixelRange = value;
            dataSource.clustering.pixelRange = (int) value;
            pixelRangeTBox.setValue("" + value);
        } else if (source.getElement().getId().equalsIgnoreCase("minimumClusterSize")) {
                _dataSource.clustering.minimumClusterSize = value;
            dataSource.clustering.minimumClusterSize = (int) value;
            minimumClusterSizeTBox.setValue("" + value);
        }
            return true;
        }

        @Override
        public void onChange(SliderEvent e) {

        }

        @Override
        public void onStop(SliderEvent e) {

        }
    }

    private class MChangeHandler implements ChangeHandler {
Loading