package org.wheelmap.android.tango.renderer; import org.rajawali3d.materials.Material; import org.rajawali3d.materials.methods.DiffuseMethod; import java.util.HashMap; import java.util.Map; public class TextureCache { public enum MaterialType { CIRCLE, LINE } private Map<MaterialType, Material> cache = new HashMap<>(); public synchronized Material get(MaterialType key) { if (cache.containsKey(key)) { return cache.get(key); } Material material; switch (key) { case CIRCLE: material = createCircleMaterial(); break; case LINE: material = createLineMaterial(); break; default: return null; } cache.put(key, material); return material; } private Material createLineMaterial() { Material material = new Material(); material.setColor(WheelmapRajawaliObjectFactory.ELEMENT_COLOR); return material; } private Material createCircleMaterial() { Material material = new Material(); material.setColor(WheelmapRajawaliObjectFactory.ELEMENT_COLOR); material.setDiffuseMethod(new DiffuseMethod.Lambert()); return material; } }