package Ubigraph::Edge; use 5.006; use strict; use warnings; use Frontier::Client; our $VERSION = '0.03'; sub new { my $class = shift; my $ubigraph = shift; my $vertex_a = shift; my $vertex_b = shift; my $self = { edge => $ubigraph->{client}->call('ubigraph.new_edge',$vertex_a->{vertex},$vertex_b->{vertex}), client => $ubigraph->{client} }; my %param = @_; foreach my $name (keys %param){ if ($name eq 'arrow_position' || $name eq 'arrow_radius' || $name eq 'arrow_length' || $name eq 'label' || $name eq 'fontsize' || $name eq 'strength' || $name eq 'width') { $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},$name,$param{$name}." "); } else { $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},$name,$param{$name}); } } return bless $self,$class; } sub remove { my $self = shift; $self->{client}->call('ubigraph.remove_edge',$self->{edge}); } sub arrow { ## [default] "false" ("true"/"false") my $self = shift; my $arrow = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'arrow',$arrow); } sub arrow_position { ## [default] 0.5 (0.0 ~ 1.0) my $self = shift; my $arrow_position = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'arrow_position',$arrow_position." "); } sub arrow_radius { ## [default] 1.0 my $self = shift; my $arrow_radius = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'arrow_radius',$arrow_radius." "); } sub arrow_length { ## [default] 1.0 my $self = shift; my $arrow_length = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'arrow_length',$arrow_length." "); } sub arrow_reverse { ## [default] "false" ("true"/"false") my $self = shift; my $arrow_reverse = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'arrow_reverse',$arrow_reverse); } sub color { ## [default] "#0000ff" my $self = shift; my $color = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'color',$color); } sub label { ## [default] "" my $self = shift; my $label = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'label',$label." "); } sub fontcolor { ## [default] "#ffffff" my $self = shift; my $font_color = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'fontcolor',$font_color); } sub fontfamily { ## [default] "Helvetica" ("Helvetica","Times Roman") my $self = shift; my $font_family = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'fontfamily',$font_family); } sub fontsize { ## [default] "12" my $self = shift; my $font_size = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'fontsize',$font_size." "); } sub oriented { ## [default] "false" ("true"/"false") my $self = shift; my $oriented = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'oriented',$oriented); } sub spline { ## [default] "false" ("true"/"false") my $self = shift; my $spline = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'spline',$spline); } sub showstrain { ## [default] "false" ("true"/"false") my $self = shift; my $showstrain = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'showstrain',$showstrain); } sub stroke { ## [default] "solid" ("solid","dashed","dotted","none") my $self = shift; my $stroke = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'stroke',$stroke); } sub strength { ## [default] 1.0 my $self = shift; my $strength = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'strength',$strength." "); } sub visible { ## [default] "true" ("true"/"false") my $self = shift; my $visible = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'visble',$visible); } sub width { ## [default] "1.0" my $self = shift; my $width = shift; $self->{client}->call('ubigraph.set_edge_attribute',$self->{edge},'width',$width." "); } 1;