Loading RenderingEngines/src/main/java/cz/fidentis/analyst/drawables/renderers/RenderingService.java +1 −6 Original line number Diff line number Diff line Loading @@ -2,21 +2,16 @@ package cz.fidentis.analyst.drawables.renderers; import com.jogamp.opengl.GL2; import cz.fidentis.analyst.drawables.Drawable; import cz.fidentis.analyst.drawables.renderers.impl.RenderingServiceImpl; /** * @author Marek Seďa */ public interface RenderingService { RenderingServiceImpl INSTANCE = new RenderingServiceImpl(); /** * Method allowing to render generic Drawable * @param gl * @param drawable */ static void render(GL2 gl, Drawable drawable) { INSTANCE.render(gl, drawable); } void render(GL2 gl, Drawable drawable); } RenderingEngines/src/main/java/cz/fidentis/analyst/drawables/renderers/impl/DrawableFpSkeletonRenderer.java +7 −2 Original line number Diff line number Diff line Loading @@ -2,15 +2,20 @@ package cz.fidentis.analyst.drawables.renderers.impl; import com.jogamp.opengl.GL2; import cz.fidentis.analyst.drawables.DrawableFpSkeleton; import cz.fidentis.analyst.drawables.renderers.RenderingService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * Renderer for DrawableFpSkeleton. * * @author Katerina Zarska */ @Component public class DrawableFpSkeletonRenderer extends AbstractDrawableRenderer<DrawableFpSkeleton> { @Autowired private RenderingServiceImpl renderingService; @Override public Class<?> getDrawableClass() { return DrawableFpSkeleton.class; Loading @@ -18,6 +23,6 @@ public class DrawableFpSkeletonRenderer extends AbstractDrawableRenderer<Drawabl @Override protected void renderObject(GL2 gl, DrawableFpSkeleton drawableFpSkeleton) { drawableFpSkeleton.getSkeleton().forEach(line -> RenderingService.render(gl, line)); drawableFpSkeleton.getSkeleton().forEach(line -> renderingService.render(gl, line)); } } RenderingEngines/src/main/java/cz/fidentis/analyst/drawables/renderers/impl/RenderingServiceImpl.java +11 −12 Original line number Diff line number Diff line Loading @@ -2,7 +2,10 @@ package cz.fidentis.analyst.drawables.renderers.impl; import com.jogamp.opengl.GL2; import cz.fidentis.analyst.drawables.Drawable; import cz.fidentis.analyst.drawables.renderers.RenderingService; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import java.util.HashMap; import java.util.Map; Loading @@ -10,15 +13,16 @@ import java.util.Map; * @author Marek Seďa */ @SuppressWarnings("ALL") public class RenderingServiceImpl { @Service public class RenderingServiceImpl implements RenderingService { private final Map<Class<?>, AbstractDrawableRenderer> renderers = new HashMap<>(); /** * Constructor of RenderingServiceImpl * initializes all available renderers * Create and register all renderers after bean initialization */ public RenderingServiceImpl() { @PostConstruct private void initRenderers() { registerRenderer(new DrawablePlaneRenderer<>()); registerRenderer(new DrawableMeshRenderer<>()); registerRenderer(new DrawableLineRenderer()); Loading @@ -35,16 +39,12 @@ public class RenderingServiceImpl { private void registerRenderer(AbstractDrawableRenderer renderer) { AbstractDrawableRenderer existingRenderer = renderers.put(renderer.getDrawableClass(), renderer); if (existingRenderer != null) { throw new IllegalArgumentException("Renderer for class " + renderer.getDrawableClass() + " is already registered"); throw new IllegalArgumentException( "Renderer for class " + renderer.getDrawableClass() + " is already registered"); } } /** * Method allowing to render generic Drawable * * @param gl * @param drawable */ @Override public void render(GL2 gl, Drawable drawable) { AbstractDrawableRenderer renderer = renderers.get(drawable.getClass()); if (renderer == null) { Loading @@ -52,5 +52,4 @@ public class RenderingServiceImpl { } renderer.render(gl, drawable); } } RenderingEngines/src/main/java/cz/fidentis/analyst/rendering/SceneRenderer.java +5 −2 Original line number Diff line number Diff line Loading @@ -5,9 +5,10 @@ import com.jogamp.opengl.GL2; import com.jogamp.opengl.GLContext; import com.jogamp.opengl.GLException; import com.jogamp.opengl.glu.GLU; import cz.fidentis.analyst.data.face.Aca; import cz.fidentis.analyst.drawables.Drawable; import cz.fidentis.analyst.data.ray.Ray; import cz.fidentis.analyst.drawables.renderers.RenderingService; import cz.fidentis.analyst.drawables.renderers.impl.RenderingServiceImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading Loading @@ -58,6 +59,8 @@ public class SceneRenderer { private final float[] modelviewMatrix = new float[16]; private final int[] viewport = new int[4]; private final RenderingServiceImpl renderingService = Aca.getInstance().getBean(RenderingServiceImpl.class); /** * Initialization method - must be called first. * Loading Loading @@ -159,7 +162,7 @@ public class SceneRenderer { drawables.stream() .filter(Drawable::isShown) .sorted(new Drawable.TransparencyComparator()) .forEach(drawable -> RenderingService.render(gl, drawable)); .forEach(drawable -> renderingService.render(gl, drawable)); } gl.glFlush(); Loading RenderingEngines/src/main/java/cz/fidentis/analyst/rendering/ShadersManager.java +6 −3 Original line number Diff line number Diff line Loading @@ -6,10 +6,11 @@ import com.jogamp.opengl.GL2; import com.jogamp.opengl.GLContext; import com.jogamp.opengl.GLException; import com.jogamp.opengl.glu.GLU; import cz.fidentis.analyst.data.face.Aca; import cz.fidentis.analyst.data.shapes.Glyph; import cz.fidentis.analyst.drawables.Drawable; import cz.fidentis.analyst.drawables.DrawableFace; import cz.fidentis.analyst.drawables.renderers.RenderingService; import cz.fidentis.analyst.drawables.renderers.impl.RenderingServiceImpl; import cz.fidentis.analyst.engines.face.FaceStateServices; import cz.fidentis.analyst.engines.sampling.PointSamplingConfig; import cz.fidentis.analyst.glsl.GlslServices; Loading Loading @@ -61,6 +62,8 @@ public class ShadersManager { private final float[] lightModelViewMatrix = new float[16]; private final float[] lightProjectionMatrix = new float[16]; private final RenderingServiceImpl renderingService = Aca.getInstance().getBean(RenderingServiceImpl.class); /** * Shader storage buffer for glyphs and information about them: position, normal and principle curvature directions. */ Loading Loading @@ -142,7 +145,7 @@ public class ShadersManager { .map(e -> (DrawableFace) e).toList(); for (DrawableFace face : faces) { updateGlyphDataSSBO(face); RenderingService.render(glContext.getGL().getGL2(), face); renderingService.render(glContext.getGL().getGL2(), face); } resetView(viewPortWidth, viewPortHeight); Loading Loading @@ -292,7 +295,7 @@ public class ShadersManager { } else { program.setNumberVar("materialMode", 1); } RenderingService.render(gl, objects.get(i)); renderingService.render(gl, objects.get(i)); } } } Loading Loading
RenderingEngines/src/main/java/cz/fidentis/analyst/drawables/renderers/RenderingService.java +1 −6 Original line number Diff line number Diff line Loading @@ -2,21 +2,16 @@ package cz.fidentis.analyst.drawables.renderers; import com.jogamp.opengl.GL2; import cz.fidentis.analyst.drawables.Drawable; import cz.fidentis.analyst.drawables.renderers.impl.RenderingServiceImpl; /** * @author Marek Seďa */ public interface RenderingService { RenderingServiceImpl INSTANCE = new RenderingServiceImpl(); /** * Method allowing to render generic Drawable * @param gl * @param drawable */ static void render(GL2 gl, Drawable drawable) { INSTANCE.render(gl, drawable); } void render(GL2 gl, Drawable drawable); }
RenderingEngines/src/main/java/cz/fidentis/analyst/drawables/renderers/impl/DrawableFpSkeletonRenderer.java +7 −2 Original line number Diff line number Diff line Loading @@ -2,15 +2,20 @@ package cz.fidentis.analyst.drawables.renderers.impl; import com.jogamp.opengl.GL2; import cz.fidentis.analyst.drawables.DrawableFpSkeleton; import cz.fidentis.analyst.drawables.renderers.RenderingService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * Renderer for DrawableFpSkeleton. * * @author Katerina Zarska */ @Component public class DrawableFpSkeletonRenderer extends AbstractDrawableRenderer<DrawableFpSkeleton> { @Autowired private RenderingServiceImpl renderingService; @Override public Class<?> getDrawableClass() { return DrawableFpSkeleton.class; Loading @@ -18,6 +23,6 @@ public class DrawableFpSkeletonRenderer extends AbstractDrawableRenderer<Drawabl @Override protected void renderObject(GL2 gl, DrawableFpSkeleton drawableFpSkeleton) { drawableFpSkeleton.getSkeleton().forEach(line -> RenderingService.render(gl, line)); drawableFpSkeleton.getSkeleton().forEach(line -> renderingService.render(gl, line)); } }
RenderingEngines/src/main/java/cz/fidentis/analyst/drawables/renderers/impl/RenderingServiceImpl.java +11 −12 Original line number Diff line number Diff line Loading @@ -2,7 +2,10 @@ package cz.fidentis.analyst.drawables.renderers.impl; import com.jogamp.opengl.GL2; import cz.fidentis.analyst.drawables.Drawable; import cz.fidentis.analyst.drawables.renderers.RenderingService; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import java.util.HashMap; import java.util.Map; Loading @@ -10,15 +13,16 @@ import java.util.Map; * @author Marek Seďa */ @SuppressWarnings("ALL") public class RenderingServiceImpl { @Service public class RenderingServiceImpl implements RenderingService { private final Map<Class<?>, AbstractDrawableRenderer> renderers = new HashMap<>(); /** * Constructor of RenderingServiceImpl * initializes all available renderers * Create and register all renderers after bean initialization */ public RenderingServiceImpl() { @PostConstruct private void initRenderers() { registerRenderer(new DrawablePlaneRenderer<>()); registerRenderer(new DrawableMeshRenderer<>()); registerRenderer(new DrawableLineRenderer()); Loading @@ -35,16 +39,12 @@ public class RenderingServiceImpl { private void registerRenderer(AbstractDrawableRenderer renderer) { AbstractDrawableRenderer existingRenderer = renderers.put(renderer.getDrawableClass(), renderer); if (existingRenderer != null) { throw new IllegalArgumentException("Renderer for class " + renderer.getDrawableClass() + " is already registered"); throw new IllegalArgumentException( "Renderer for class " + renderer.getDrawableClass() + " is already registered"); } } /** * Method allowing to render generic Drawable * * @param gl * @param drawable */ @Override public void render(GL2 gl, Drawable drawable) { AbstractDrawableRenderer renderer = renderers.get(drawable.getClass()); if (renderer == null) { Loading @@ -52,5 +52,4 @@ public class RenderingServiceImpl { } renderer.render(gl, drawable); } }
RenderingEngines/src/main/java/cz/fidentis/analyst/rendering/SceneRenderer.java +5 −2 Original line number Diff line number Diff line Loading @@ -5,9 +5,10 @@ import com.jogamp.opengl.GL2; import com.jogamp.opengl.GLContext; import com.jogamp.opengl.GLException; import com.jogamp.opengl.glu.GLU; import cz.fidentis.analyst.data.face.Aca; import cz.fidentis.analyst.drawables.Drawable; import cz.fidentis.analyst.data.ray.Ray; import cz.fidentis.analyst.drawables.renderers.RenderingService; import cz.fidentis.analyst.drawables.renderers.impl.RenderingServiceImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading Loading @@ -58,6 +59,8 @@ public class SceneRenderer { private final float[] modelviewMatrix = new float[16]; private final int[] viewport = new int[4]; private final RenderingServiceImpl renderingService = Aca.getInstance().getBean(RenderingServiceImpl.class); /** * Initialization method - must be called first. * Loading Loading @@ -159,7 +162,7 @@ public class SceneRenderer { drawables.stream() .filter(Drawable::isShown) .sorted(new Drawable.TransparencyComparator()) .forEach(drawable -> RenderingService.render(gl, drawable)); .forEach(drawable -> renderingService.render(gl, drawable)); } gl.glFlush(); Loading
RenderingEngines/src/main/java/cz/fidentis/analyst/rendering/ShadersManager.java +6 −3 Original line number Diff line number Diff line Loading @@ -6,10 +6,11 @@ import com.jogamp.opengl.GL2; import com.jogamp.opengl.GLContext; import com.jogamp.opengl.GLException; import com.jogamp.opengl.glu.GLU; import cz.fidentis.analyst.data.face.Aca; import cz.fidentis.analyst.data.shapes.Glyph; import cz.fidentis.analyst.drawables.Drawable; import cz.fidentis.analyst.drawables.DrawableFace; import cz.fidentis.analyst.drawables.renderers.RenderingService; import cz.fidentis.analyst.drawables.renderers.impl.RenderingServiceImpl; import cz.fidentis.analyst.engines.face.FaceStateServices; import cz.fidentis.analyst.engines.sampling.PointSamplingConfig; import cz.fidentis.analyst.glsl.GlslServices; Loading Loading @@ -61,6 +62,8 @@ public class ShadersManager { private final float[] lightModelViewMatrix = new float[16]; private final float[] lightProjectionMatrix = new float[16]; private final RenderingServiceImpl renderingService = Aca.getInstance().getBean(RenderingServiceImpl.class); /** * Shader storage buffer for glyphs and information about them: position, normal and principle curvature directions. */ Loading Loading @@ -142,7 +145,7 @@ public class ShadersManager { .map(e -> (DrawableFace) e).toList(); for (DrawableFace face : faces) { updateGlyphDataSSBO(face); RenderingService.render(glContext.getGL().getGL2(), face); renderingService.render(glContext.getGL().getGL2(), face); } resetView(viewPortWidth, viewPortHeight); Loading Loading @@ -292,7 +295,7 @@ public class ShadersManager { } else { program.setNumberVar("materialMode", 1); } RenderingService.render(gl, objects.get(i)); renderingService.render(gl, objects.get(i)); } } } Loading