[LON-CAPA-cvs] cvs: loncom /homework functionplotresponse.pm

www www at source.lon-capa.org
Thu Nov 24 10:43:08 EST 2011


www		Thu Nov 24 15:43:08 2011 EDT

  Modified files:              
    /loncom/homework	functionplotresponse.pm 
  Log:
  Check for attachment of list of objects
  
  
Index: loncom/homework/functionplotresponse.pm
diff -u loncom/homework/functionplotresponse.pm:1.86 loncom/homework/functionplotresponse.pm:1.87
--- loncom/homework/functionplotresponse.pm:1.86	Thu Nov 24 13:43:21 2011
+++ loncom/homework/functionplotresponse.pm	Thu Nov 24 15:43:08 2011
@@ -1,7 +1,7 @@
 # LearningOnline Network with CAPA
 # Functionplot responses
 #
-# $Id: functionplotresponse.pm,v 1.86 2011/11/24 13:43:21 www Exp $
+# $Id: functionplotresponse.pm,v 1.87 2011/11/24 15:43:08 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -783,39 +783,17 @@
       $vector=~s/\W//gs;
       $vector=ucfirst($vector);
 
-      my $attachpoint=&Apache::lonxml::get_param('attachpoint',$parstack,$safeeval);
-      $attachpoint=~s/\W//gs;
-      $attachpoint=ucfirst($attachpoint);
-
-      my $notattachpoint=&Apache::lonxml::get_param('notattachpoint',$parstack,$safeeval);
-      $notattachpoint=~s/\W//gs;
-      $notattachpoint=ucfirst($notattachpoint);
-
-      my $tailpoint=&Apache::lonxml::get_param('tailpoint',$parstack,$safeeval);
-      $tailpoint=~s/\W//gs;
-      $tailpoint=ucfirst($tailpoint);
-      my $tippoint=&Apache::lonxml::get_param('tippoint',$parstack,$safeeval);
-      $tippoint=~s/\W//gs;
-      $tippoint=ucfirst($tippoint);
-
-      my $nottailpoint=&Apache::lonxml::get_param('nottailpoint',$parstack,$safeeval);
-      $nottailpoint=~s/\W//gs;
-      $nottailpoint=ucfirst($nottailpoint);
-      my $nottippoint=&Apache::lonxml::get_param('nottippoint',$parstack,$safeeval);
-      $nottippoint=~s/\W//gs;
-      $nottippoint=ucfirst($nottippoint);
-
       push(@Apache::functionplotresponse::functionplotvectorrules,join(':',(
            $label,
            'vector',
            $internalid,
            $vector,
-           $attachpoint,
-           $notattachpoint,
-           $tailpoint,
-           $tippoint,
-           $nottailpoint,
-           $nottippoint,
+           &Apache::lonxml::get_param('attachpoint',$parstack,$safeeval),
+           &Apache::lonxml::get_param('notattachpoint',$parstack,$safeeval),
+           &Apache::lonxml::get_param('tailpoint',$parstack,$safeeval),
+           &Apache::lonxml::get_param('tippoint',$parstack,$safeeval),
+           &Apache::lonxml::get_param('nottailpoint',$parstack,$safeeval),
+           &Apache::lonxml::get_param('nottippoint',$parstack,$safeeval),
            &Apache::lonxml::get_param('length',$parstack,$safeeval),
            &Apache::lonxml::get_param('angle',$parstack,$safeeval),
            &Apache::lonxml::get_param('lengtherror',$parstack,$safeeval),
@@ -850,12 +828,6 @@
              &Apache::edit::end_row();
   } elsif ($target eq 'modified') {
     $env{'form.'.&Apache::edit::html_element_name('vector')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('vector')});
-    $env{'form.'.&Apache::edit::html_element_name('attachpoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('attachpoint')});
-    $env{'form.'.&Apache::edit::html_element_name('notattachpoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('notattachpoint')});
-    $env{'form.'.&Apache::edit::html_element_name('tailpoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('tailpoint')});
-    $env{'form.'.&Apache::edit::html_element_name('tippoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('tippoint')});
-    $env{'form.'.&Apache::edit::html_element_name('nottailpoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('nottailpoint')});
-    $env{'form.'.&Apache::edit::html_element_name('nottippoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('nottippoint')});
     my $constructtag=&Apache::edit::get_new_args($token,$parstack,
                                                  $safeeval,'index','vector','attachpoint','notattachpoint',
                                                            'tailpoint','tippoint','nottailpoint','nottipoint',
@@ -1470,16 +1442,27 @@
 }
 
 sub attached {
-   my ($id,$vector,$object,$xmin,$xmax,$ymin,$ymax)=@_;
+   my ($id,$vector,$objects,$xmin,$xmax,$ymin,$ymax)=@_;
    my ($xs,$xe,$ys,$ye)=&vectorcoords($id,$vector);
-   my ($xo,$yo)=&objectcoords($id,$object);
    my $tolx=($xmax-$xmin)/100.;
    my $toly=($ymax-$ymin)/100.;
    my $tail=0;
    my $tip=0;
-   &addlog("Proximity $vector ($xs,$ys)-($xe,$ye) to $object ($xo,$yo)");
-   if ((abs($xs-$xo)<$tolx) && (abs($ys-$yo)<$toly)) { $tail=1; }
-   if ((abs($xe-$xo)<$tolx) && (abs($ye-$yo)<$toly)) { $tip=1; }
+   foreach my $obj (split(/\s*\,\s*/,$objects)) {
+      $obj=~s/\W//g;
+      unless ($obj) { next; }
+      $obj=ucfirst($obj);
+      my ($xo,$yo)=&objectcoords($id,$obj);
+      &addlog("Proximity $vector ($xs,$ys)-($xe,$ye) to $obj ($xo,$yo)");
+      if ((abs($xs-$xo)<$tolx) && (abs($ys-$yo)<$toly)) {
+         $tail=1;
+         &addlog("Attached tail: $obj"); 
+      }
+      if ((abs($xe-$xo)<$tolx) && (abs($ye-$yo)<$toly)) { 
+         $tip=1;
+         &addlog("Attached tip: $obj"); 
+      }
+   }
    &addlog("Result tail:$tail tip:$tip");
    return($tail,$tip);
 }




More information about the LON-CAPA-cvs mailing list