def __init__(self, title='', getValue=None, parent=None, **kwargs): super(Graph, self).__init__(**kwargs) self.registerInstance(self, parent) self._getValue = getValue self._xSkip = 2 self._curUsage = 0 self.sensitive = False avg.RectNode(parent=self, strokewidth=0, fillopacity=0.6, fillcolor="FFFFFF", size=self.size) self._textNode0 = avg.WordsNode(parent=self, x=10, y=self.size.y - 22, color="000080") self._textNode1 = avg.WordsNode(parent=self, x=10, y=self.size.y - 39, color="000080") self._maxLineNode = avg.PolyLineNode(parent=self, color="880000") self._lineNode = avg.PolyLineNode(parent=self, color="008000") self.__graphText = avg.WordsNode(parent=self, x=10, y=0, color="000080") self.__graphText.text = title self._setup()
def addPolyLine(): polyline = avg.PolyLineNode(strokewidth=2, color="FF00FF", pos=[(10, 10), (50, 10), (90, 50), (90, 90)]) canvas.appendChild(polyline) return polyline
def _create_data_objects(self, x_axis_data, y_axis_data): """ Creates data lines for all data objects in this chart. :type x_axis_data: DataDescription :type y_axis_data: DataDescription """ for data_object in self._data_objects.itervalues(): point_list = [] # Get all the values. x_values = data_object.attributes[x_axis_data.key_name].values y_values = data_object.attributes[y_axis_data.key_name].values for i in range(len(x_values)): # Convert the value in coordinates. pos_x = self.horizontal_axis_views[ x_axis_data.key_name].get_pos_from_data_value(x_values[i]) pos_y = self.vertical_axis_views[ y_axis_data.key_name].get_pos_from_data_value(y_values[i]) point_list.append((pos_x, pos_y)) # Create the new data line. new_line = avg.PolyLineNode(parent=self._data_div, strokewidth=self.__data_line_width, pos=point_list, color=defaults.ITEM_COLOR, opacity=defaults.ITEM_OPACITY) self._data_object_nodes[data_object.obj_id] = new_line super(LineChart, self)._create_data_objects_for_base()
def _onDown(self, event): self._drawLine = avg.PolyLineNode( parent=self._maskCanvas.getRootNode(), pos=[event.pos], color='FFFFFF', strokewidth=42.0, opacity=0.25)
def __init__(self, event, **kwargs): BaseTouchVisualization.__init__(self, event, **kwargs) self.positions = [event.pos] if event.source == avg.Event.TOUCH: color = 'e5d8d8' elif event.source == avg.Event.TANGIBLE: color = 'ffe0e0' else: color = 'd8e5e5' self.opacity = 0.5 self.__transparentCircle = avg.CircleNode(r=self._radius + 20, fillcolor=color, fillopacity=0.2, opacity=0.0, strokewidth=1, sensitive=False, parent=self) self.__pulsecircle = avg.CircleNode(r=self._radius, fillcolor=color, color=color, fillopacity=0.5, opacity=0.5, strokewidth=1, sensitive=False, parent=self) if event.source in [avg.Event.TOUCH, avg.Event.TRACK]: self.__majorAxis = avg.LineNode(pos1=(0, 0), pos2=event.majoraxis, color='FFFFFF', sensitive=False, parent=self) self.__minorAxis = avg.LineNode(pos1=(0, 0), pos2=event.minoraxis, color='FFFFFF', sensitive=False, parent=self) if event.source == avg.Event.TOUCH: self.__handAxis = avg.LineNode(pos1=(0, 0), pos2=self.__getHandVector(event), opacity=0.5, color='A0FFA0', sensitive=False, parent=self) fontPos = avg.Point2D(self.__pulsecircle.r, 0) self.__textNode = avg.WordsNode(pos=fontPos, fontsize=9, parent=self) self.motionPath = avg.PolyLineNode(pos=self.positions, opacity=0.7, color=color, parent=kwargs['parent']) self.motionVector = avg.LineNode(pos1=(0, 0), pos2=-event.contact.motionvec, opacity=0.4, parent=self) pulseCircleAnim = avg.LinearAnim(self.__pulsecircle, 'r', 200, 50, self._radius) pulseCircleAnim.start()
def texturePolyLine(): polyline = avg.PolyLineNode(strokewidth=20, color="FF00FF", texhref="rgb24-64x64.png", pos=((10, 10), (50, 10), (90, 50), (90, 90)), texcoords=(0, 0.3, 0.7, 1)) canvas.appendChild(polyline) return polyline
def _create_data_objects(self): """ Creates data objects visualisations for all data objects in this chart. """ for data_object in self._data_objects.itervalues(): point_list = [] # Get all the values. for key, axis_view in self._axis_views.iteritems(): # Convert the value in coordinates. pos_y = axis_view.get_pos_from_data_value(data_object.attributes[key].values[0]) point_list.append((axis_view.pos[0], pos_y)) # Create the new data line. new_line = avg.PolyLineNode( parent=self._data_div, strokewidth=self.__data_line_width, pos=point_list, color=data_object.color ) self._data_object_nodes[data_object.obj_id] = new_line super(ParallelCoordinatesPlot, self)._create_data_objects_for_base()
def __init__(self, session, vis_params, parent, mode="user", use_heatmap=True, label=None, **kwargs): """ :param session: The session this panel is based on. :type session: Session :param vis_params: :type vis_params: :param mode: The mode that will be used for this panel. Either "user" for user data or "device" for device data. :type mode: str :param label: This can be set if a custom label for this view should be given. :type label: str :param parent: The parent of this Panel. :type parent: avg.DivNode :param kwargs: Other parameters for a VisPanel object. """ pos_range = pat_model.pos_range view_extent = avg.Point2D(pos_range[1][0] - pos_range[0][0], 3.0) aspect = view_extent.y/view_extent.x label = label or "Floor {}".format(mode) super(FloorPanel, self).__init__(label, vis_params, (60, 25), True, aspect, parent=parent, **kwargs) self.__session_start_time = session.start_time self.__session_time_offset = session.time_offset self.__users = session.users self.__mode = mode self.__use_heatmap = use_heatmap self._create_x_axis( data_range=(pos_range[0][0], pos_range[1][0]), unit="m", top_axis=True ) self._create_y_axis( data_range=self.__VERTICAL_POS_RANGE, tick_positions=[0,1,2,3], unit="m", hide_rims=True ) self.__create_wall_rect() self._create_data_div() self.__user_nodes = [] self.__user_visibility = [True for _ in range(len(self.__users))] self.__heatmap_nodes = [] self.__line_movement_nodes = [] for user in self.__users: color = str(vis_params.get_user_color(user.getUserID())) node = heatmap.HeatMapNode( size=self._data_div.size, viewportrangemin=(pos_range[0][0], self.__VERTICAL_POS_RANGE[0]), viewportrangemax=(pos_range[1][0], self.__VERTICAL_POS_RANGE[1]), mapsize=(50,25), valuerangemin=0, valuerangemax=6, colormap=(color, color), opacitymap=(0,1), blendmode=global_values.BLEND_MODE, parent=self._data_div ) node.setEffect(avg.BlurFXNode(radius=1.2)) self.__heatmap_nodes.append(node) # Create an empty poly line node. line_node = avg.PolyLineNode( parent=self._data_div, color=color, strokewidth=2, opacity=0.45 ) self.__line_movement_nodes.append(line_node) self.__time_interval = [None, None] self.__timestamp_words_node = avg.WordsNode( parent=self._data_div, color=global_values.COLOR_FOREGROUND, rawtextmode=True, alignment="right", fontsize=global_values.FONT_SIZE / 2, pos=(self._data_div.width - 3, 3) )
def createSamePts(): avg.PolyLineNode(pos=((10, 20), (10, 20), (10, 20)), parent=canvas) avg.PolyLineNode(pos=((10, 20), (10, 20), (20, 30)), parent=canvas) avg.PolyLineNode(pos=((20, 30), (10, 20), (10, 20)), parent=canvas) avg.PolyLineNode(pos=((10, 20), (20, 30), (10, 20)), parent=canvas)
def __create_line(self, points): line = plots.VWLineNode(color="FFFFFF", parent=self) line.setValues(points, self.widths, self.opacities) avg.PolyLineNode(pos=points, color="FF0000", parent=self)