]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.proconf.g3d/src/org/simantics/proconf/g3d/base/DefaultAppearanceProvider.java
e6ea37fd04c08304ae79773351ac698e61295932
[simantics/3d.git] / org.simantics.proconf.g3d / src / org / simantics / proconf / g3d / base / DefaultAppearanceProvider.java
1 package org.simantics.proconf.g3d.base;\r
2 \r
3 import java.util.Collection;\r
4 \r
5 import org.simantics.layer0.utils.IEntity;\r
6 import org.simantics.proconf.g3d.Resources;\r
7 import org.simantics.proconf.g3d.stubs.Appearance;\r
8 \r
9 import com.jme.renderer.Renderer;\r
10 import com.jme.scene.state.RenderState;\r
11 \r
12 public class DefaultAppearanceProvider implements AppearanceProvider {\r
13         \r
14         \r
15 \r
16         @Override\r
17         public boolean canHandle(IEntity instance) {\r
18                 return instance.hasStatement(Resources.g3dResource.HasAppearance);\r
19         }\r
20         \r
21         @Override\r
22         public Collection<RenderState> getAppearanceFromResource(IEntity instance, Renderer renderer) {\r
23                 Collection<IEntity> appearanceResource;\r
24         if ((appearanceResource = instance.getRelatedObjects(Resources.g3dResource.HasAppearance)) != null && appearanceResource.size() > 0) {\r
25             return AppearanceTools.getAppearance(new Appearance(instance.getGraph(),appearanceResource.iterator().next().getResource()), renderer);\r
26         }\r
27         throw new RuntimeException("Given instance does not have Appearance definition!");\r
28         }\r
29 }\r