def add_color(geomerty): waterNode = agxOSG.createVisual(geomerty, demoutils.root()) color = agxRender.Color.DeepSkyBlue() alpha = 0.4 agxOSG.setDiffuseColor(waterNode, color) agxOSG.setAmbientColor(waterNode, agx.Vec4f(1)) agxOSG.setShininess(waterNode, 120) agxOSG.setAlpha(waterNode, alpha)
def create_water_visual(geo, root): node = agxOSG.createVisual(geo, root) diffuse_color = agxRender.Color(0.0, 0.75, 1.0, 1) ambient_color = agxRender.Color(1, 1, 1, 1) specular_color = agxRender.Color(1, 1, 1, 1) agxOSG.setDiffuseColor(node, diffuse_color) agxOSG.setAmbientColor(node, ambient_color) agxOSG.setSpecularColor(node, specular_color) agxOSG.setShininess(node, 120) agxOSG.setAlpha(node, 0.5) return node
def create_visual(obj, diffuse_color: Color = None, ambient_color: Color = None, shininess=None, alpha: float = None): node = agxOSG.createVisual(obj, root()) if diffuse_color is not None: agxOSG.setDiffuseColor(node, diffuse_color) if ambient_color is not None: agxOSG.setAmbientColor(node, ambient_color) if shininess is not None: agxOSG.setShininess(node, shininess) if alpha is not None: agxOSG.setAlpha(node, alpha) return node
def _add_rendering(self, mode='osg'): # Set renderer self.app.setAutoStepping(True) self.app.setEnableDebugRenderer(False) self.app.setEnableOSGRenderer(True) # Create scene graph for rendering root = self.app.getSceneRoot() rbs = self.sim.getRigidBodies() for rb in rbs: node = agxOSG.createVisual(rb, root) if rb.getName() == "ground": agxOSG.setDiffuseColor(node, agxRender.Color(0.8, 0.8, 0.8, 1.0)) elif rb.getName() == "walls": agxOSG.setDiffuseColor(node, agxRender.Color.Burlywood()) elif rb.getName() == "cylinder": agxOSG.setDiffuseColor(node, agxRender.Color.DarkGray()) elif rb.getName() == "cylinder_inner": agxOSG.setDiffuseColor(node, agxRender.Color.LightSteelBlue()) elif rb.getName() == "gripper_0" or rb.getName() == "gripper_1": agxOSG.setDiffuseColor(node, agxRender.Color(0.1, 0.1, 0.1, 1.0)) elif "dlo" in rb.getName(): # Cable segments agxOSG.setDiffuseColor(node, agxRender.Color(0.1, 0.5, 0.0, 1.0)) agxOSG.setAmbientColor(node, agxRender.Color(0.2, 0.5, 0.0, 1.0)) elif rb.getName() == "obstacle": agxOSG.setDiffuseColor(node, agxRender.Color(0.5, 0.5, 0.5, 1.0)) elif rb.getName() == "obstacle_goal": agxOSG.setDiffuseColor(node, agxRender.Color(0.0, 0.0, 1.0, 1.0)) else: agxOSG.setDiffuseColor(node, agxRender.Color.Beige()) agxOSG.setAlpha(node, 0.0) # Set rendering options scene_decorator = self.app.getSceneDecorator() scene_decorator.setEnableLogo(False) scene_decorator.setBackgroundColor(agxRender.Color(1.0, 1.0, 1.0, 1.0))
def __init__(self, ground: agxCollide.Geometry, rov, depth): """ Args: ground: rov: depth: """ super().__init__() self.setMask(ContactEventListener.CONTACT) b = agxCollide.Box(.1, .1, depth) self.beam = Geometry(b) # print(self.beam.getShapes(),self.beam) self.beam.setPosition(0, 0, -depth) self.beam.setSensor(True) self.setFilter(GeometryFilter(self.beam, ground)) color = agxRender.Color.IndianRed() node = agxOSG.createVisual(self.beam, demoutils.root()) agxOSG.setDiffuseColor(node, color) agxOSG.setAmbientColor(node, agx.Vec4f(1)) agxOSG.setShininess(node, 120) agxOSG.setAlpha(node, 0.6) self.ground = ground.getShape().asHeightField()