package org.jzy3d.plot3d.rendering.view;
import org.jzy3d.chart.factories.IChartComponentFactory;
import org.jzy3d.maths.BoundingBox3d;
import org.jzy3d.plot3d.primitives.AbstractDrawable;
import org.jzy3d.plot3d.primitives.Croppable;
import org.jzy3d.plot3d.rendering.canvas.ICanvas;
import org.jzy3d.plot3d.rendering.canvas.Quality;
import org.jzy3d.plot3d.rendering.scene.Scene;
import com.jogamp.opengl.GL;
import com.jogamp.opengl.glu.GLU;
public class CroppingView extends AWTView {
public CroppingView(IChartComponentFactory factory, Scene scene, ICanvas canvas, Quality quality) {
super(factory, scene, canvas, quality);
}
@Override
public void setBoundManual(BoundingBox3d bounds) {
super.setBoundManual(bounds);
filter = bounds;
applyCropFilter();
}
@Override
public void renderSceneGraph(GL gl, GLU glu, boolean light) {
synchronized (scene.getGraph()) {
super.renderSceneGraph(gl, glu, light);
}
}
private void applyCropFilter() {
synchronized (scene.getGraph()) {
for (AbstractDrawable d : scene.getGraph().getAll()) {
if (d instanceof Croppable) {
Croppable c = (Croppable) d;
c.filter(filter);
}
}
}
}
BoundingBox3d filter;
}
Ads help maintain this website.