use of org.cesiumjs.cs.core.HeadingPitchRoll in project gwt-cs by iSergio.
the class CZML method buildPanel.
@Override
public void buildPanel() {
csVPanel = new ViewerPanel();
csVPanel.getViewer().dataSources().add(CzmlDataSource.load(GWT.getModuleBaseURL() + "SampleData/simple.czml"));
csVPanel.getViewer().camera.flyHome(0);
Button satellitesBtn = new Button("Satellites");
satellitesBtn.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent clickEvent) {
reset();
csVPanel.getViewer().dataSources().add(CzmlDataSource.load(GWT.getModuleBaseURL() + "SampleData/simple.czml"));
csVPanel.getViewer().camera.flyHome(0);
}
});
Button vehicleBtn = new Button("Vehicle");
vehicleBtn.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent clickEvent) {
reset();
csVPanel.getViewer().dataSources().add(CzmlDataSource.load(GWT.getModuleBaseURL() + "SampleData/Vehicle.czml"));
ViewOptions viewOptions = new ViewOptions();
viewOptions.destinationPos = Cartesian3.fromDegrees(-116.52, 35.02, 95000);
viewOptions.orientation = new HeadingPitchRoll(6, -Math.PI_OVER_TWO());
csVPanel.getViewer().scene().camera().setView(viewOptions);
}
});
HorizontalPanel hPanel = new HorizontalPanel();
hPanel.setSpacing(10);
hPanel.add(satellitesBtn);
hPanel.add(vehicleBtn);
AbsolutePanel aPanel = new AbsolutePanel();
aPanel.add(csVPanel);
aPanel.add(hPanel, 20, 20);
contentPanel.add(new HTML("<p>A simple CZML example showing four satellites in orbit around the Earth, and some ground objects.</p>"));
contentPanel.add(aPanel);
initWidget(contentPanel);
}
use of org.cesiumjs.cs.core.HeadingPitchRoll in project gwt-cs by iSergio.
the class Tiles3DClippingPlanes method loadModel.
private void loadModel(String url) {
ClippingPlane[] clippingPlanes = new ClippingPlane[] { new ClippingPlane(new Cartesian3(0.0, 0.0, -1.0), -100.0) };
ClippingPlaneCollectionOptions clippingPlaneCollectionOptions = new ClippingPlaneCollectionOptions();
clippingPlaneCollectionOptions.planes = clippingPlanes;
clippingPlaneCollectionOptions.edgeWidth = edgeStylingCBox.getValue() ? 1.0 : 0.0;
modelEntityClippingPlanes = new ClippingPlaneCollection(clippingPlaneCollectionOptions);
Cartesian3 position = Cartesian3.fromDegrees(-123.0744619, 44.0503706, 100.0);
double heading = Math.toRadians(135.0);
double pitch = 0.0;
double roll = 0.0;
HeadingPitchRoll hpr = new HeadingPitchRoll(heading, pitch, roll);
Quaternion orientation = Transforms.headingPitchRollQuaternion(position, hpr);
ModelGraphicsOptions modelGraphicsOptions = new ModelGraphicsOptions();
modelGraphicsOptions.uri = new ConstantProperty<>(url);
modelGraphicsOptions.scale = new ConstantProperty<>(8.0);
modelGraphicsOptions.minimumPixelSize = new ConstantProperty<>(100.0);
modelGraphicsOptions.clippingPlanes = new CallbackProperty(new CallbackProperty.Callback() {
@Override
public Object function(JulianDate time, Object result) {
return modelEntityClippingPlanes;
}
}, false);
EntityOptions entityOptions = new EntityOptions();
entityOptions.name = url;
entityOptions.position = new ConstantPositionProperty(position);
entityOptions.orientation = new ConstantProperty<>(orientation);
entityOptions.model = new ModelGraphics(modelGraphicsOptions);
csVPanel.getViewer().trackedEntity = csVPanel.getViewer().entities().add(entityOptions);
for (final ClippingPlane clippingPlane : clippingPlanes) {
PlaneGraphicsOptions planeGraphicsOptions = new PlaneGraphicsOptions();
planeGraphicsOptions.dimensions = new ConstantProperty<>(new Cartesian2(300.0, 300.0));
planeGraphicsOptions.material = new ColorMaterialProperty(Color.WHITE().withAlpha(0.1f));
planeGraphicsOptions.plane = new CallbackProperty(new CallbackProperty.Callback() {
@Override
public Object function(JulianDate time, Object result) {
clippingPlane.distance = targetY;
return ClippingPlane.transform(clippingPlane, Matrix4.IDENTITY(), scratchPlane);
}
}, false);
planeGraphicsOptions.outline = new ConstantProperty<>(true);
planeGraphicsOptions.outlineColor = new ConstantProperty<>(Color.WHITE());
EntityOptions planeEntityOptions = new EntityOptions();
planeEntityOptions.position = new ConstantPositionProperty(position);
planeEntityOptions.plane = new PlaneGraphics(planeGraphicsOptions);
planeEntities.add(csVPanel.getViewer().entities().add(planeEntityOptions));
}
}
use of org.cesiumjs.cs.core.HeadingPitchRoll in project gwt-cs by iSergio.
the class AtmosphereColor method buildPanel.
@Override
public void buildPanel() {
_csVPanel = new ViewerPanel();
Camera camera = _csVPanel.getViewer().camera;
ViewOptions viewOptions = new ViewOptions();
viewOptions.destinationPos = Cartesian3.fromDegrees(-75.5847, 40.0397, 1000.0);
viewOptions.orientation = new HeadingPitchRoll(-Math.PI_OVER_TWO(), 0.2, 0.0);
camera.setView(viewOptions);
HorizontalPanel hueShiftHPanel = new HorizontalPanel();
hueShiftHPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
hueShiftHPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
hueShiftHPanel.setSpacing(10);
_hueShiftSlider = new Slider("hueShift", -100, 100, 0);
_hueShiftSlider.setStep(1);
_hueShiftSlider.setWidth("150px");
_hueShiftSlider.addListener(new MSliderListener());
_hueShiftTBox = new TextBox();
_hueShiftTBox.addChangeHandler(new MChangeHandler());
_hueShiftTBox.setText("0");
_hueShiftTBox.setSize("30px", "12px");
hueShiftHPanel.add(_hueShiftSlider);
hueShiftHPanel.add(_hueShiftTBox);
HorizontalPanel saturationShiftHPanel = new HorizontalPanel();
saturationShiftHPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
saturationShiftHPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
saturationShiftHPanel.setSpacing(10);
_saturationShiftSlider = new Slider("saturationShift", -100, 100, 0);
_saturationShiftSlider.setStep(1);
_saturationShiftSlider.setWidth("150px");
_saturationShiftSlider.addListener(new MSliderListener());
_saturationShiftTBox = new TextBox();
_saturationShiftTBox.addChangeHandler(new MChangeHandler());
_saturationShiftTBox.setText("0");
_saturationShiftTBox.setSize("30px", "12px");
saturationShiftHPanel.add(_saturationShiftSlider);
saturationShiftHPanel.add(_saturationShiftTBox);
HorizontalPanel brightnessShiftHPanel = new HorizontalPanel();
brightnessShiftHPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
brightnessShiftHPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
brightnessShiftHPanel.setSpacing(10);
_brightnessShiftSlider = new Slider("brightnessShift", -100, 100, 0);
_brightnessShiftSlider.setStep(1);
_brightnessShiftSlider.setWidth("150px");
_brightnessShiftSlider.addListener(new MSliderListener());
_brightnessShiftTBox = new TextBox();
_brightnessShiftTBox.addChangeHandler(new MChangeHandler());
_brightnessShiftTBox.setText("0");
_brightnessShiftTBox.setSize("30px", "12px");
brightnessShiftHPanel.add(_brightnessShiftSlider);
brightnessShiftHPanel.add(_brightnessShiftTBox);
CheckBox lightingCBox = new CheckBox();
lightingCBox.setWidth("100px");
lightingCBox.setValue(true);
lightingCBox.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
@Override
public void onValueChange(ValueChangeEvent<Boolean> valueChangeEvent) {
_csVPanel.getViewer().scene().globe.enableLighting = !_csVPanel.getViewer().scene().globe.enableLighting;
}
});
CheckBox fogCBox = new CheckBox();
fogCBox.setWidth("100px");
fogCBox.setValue(true);
fogCBox.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
@Override
public void onValueChange(ValueChangeEvent<Boolean> valueChangeEvent) {
_csVPanel.getViewer().scene().fog.enabled = !_csVPanel.getViewer().scene().fog.enabled;
}
});
FlexTable flexTable = new FlexTable();
flexTable.setHTML(1, 0, "<font color=\"white\">hueShift</font>");
flexTable.setWidget(1, 1, hueShiftHPanel);
flexTable.setHTML(2, 0, "<font color=\"white\">saturationShift</font>");
flexTable.setWidget(2, 1, saturationShiftHPanel);
flexTable.setHTML(3, 0, "<font color=\"white\">brightnessShift</font>");
flexTable.setWidget(3, 1, brightnessShiftHPanel);
flexTable.setHTML(4, 0, "<font color=\"white\">Toggle Lighting</font>");
flexTable.setWidget(4, 1, lightingCBox);
flexTable.setHTML(5, 0, "<font color=\"white\">Toggle Fog</font>");
flexTable.setWidget(5, 1, fogCBox);
AbsolutePanel aPanel = new AbsolutePanel();
aPanel.add(_csVPanel);
aPanel.add(flexTable, 20, 20);
contentPanel.add(new HTML("<p>Adjust hue, saturation, and brightness of the sky/atmosphere.</p>"));
contentPanel.add(aPanel);
initWidget(contentPanel);
}
Aggregations