Overview Schemas Index

KINEMATIC_STRUCTURE_SCHEMA (jsdai.SKinematic_structure_schema)


FUNCTION convert_plane_angle_for_pair_from_radian
          (pair : kinematic_pair, angle_expr : REAL) : plane_angle_measure;

 LOCAL link_rep : kinematic_link_representation := representation_of_link ( pair . joint . first_link ) ; link_cntxt : representation_context ; pa_units : SET OF  unit := [ ] ; pau : unit ; conv_factor : REAL := 1.0 ; result : plane_angle_measure ; END_LOCAL ; link_cntxt := link_rep \ representation . context_of_items ; IF  NOT  ( 'measure_schema.global_unit_assigned_context' IN  TYPEOF  ( link_cntxt ) ) THEN  RETURN  ( ? ) ; END_IF  ; pa_units := QUERY ( unit <* link_cntxt \ global_unit_assigned_context . units | 'measure_schema.plane_angle_unit' IN  TYPEOF  ( unit ) ) ; IF  SIZEOF ( pa_units ) <> 1 THEN  RETURN  ( ? ) ; END_IF  ; pau := pa_units [ 1 ] ; IF  ( NOT  ( 'measure_schema.si_unit' IN  TYPEOF  ( pau ) ) AND  NOT  ( 'measure_schema.conversion_based_unit' IN  TYPEOF  ( pau ) ) ) THEN  RETURN  ( ? ) ; END_IF  ; REPEAT WHILE ( 'measure_schema.conversion_based_unit' IN  TYPEOF  ( pau ) ) ; conv_factor := conv_factor * pau \ conversion_based_unit . conversion_factor . value_component ; pau := pau \ conversion_based_unit . conversion_factor . unit_component ; IF  ( ( NOT  ( 'measure_schema.si_unit' IN  TYPEOF  ( pau ) ) AND NOT  ( 'measure_schema.conversion_based_unit' IN  TYPEOF  ( pau ) ) ) OR ( NOT ( 'measure_schema.plane_angle_unit' IN TYPEOF ( pau ) ) ) ) THEN  RETURN  ( ? ) ; END_IF  ; END_REPEAT ; IF ( pau \ si_unit . name <> si_unit_name . radian ) THEN RETURN  ( ? ) ; END_IF ; CASE pau \ si_unit . prefix OF si_prefix . exa : conv_factor := 1.e18 * conv_factor ; si_prefix . peta : conv_factor := 1.e15 * conv_factor ; si_prefix . tera : conv_factor := 1.e12 * conv_factor ; si_prefix . giga : conv_factor := 1.e9 * conv_factor ; si_prefix . mega : conv_factor := 1.e6 * conv_factor ; si_prefix . kilo : conv_factor := 1.e3 * conv_factor ; si_prefix . hecto : conv_factor := 1.e2 * conv_factor ; si_prefix . deca : conv_factor := 1.e1 * conv_factor ; si_prefix . deci : conv_factor := 1.e-1 * conv_factor ; si_prefix . centi : conv_factor := 1.e-2 * conv_factor ; si_prefix . milli : conv_factor := 1.e-3 * conv_factor ; si_prefix . micro : conv_factor := 1.e-6 * conv_factor ; si_prefix . nano : conv_factor := 1.e-9 * conv_factor ; si_prefix . pico : conv_factor := 1.e-12 * conv_factor ; si_prefix . femto : conv_factor := 1.e-15 * conv_factor ; si_prefix . atto : conv_factor := 1.e-18 * conv_factor ; END_CASE ; result := angle_expr / conv_factor ; RETURN ( result ) ; 

END_FUNCTION; -- convert_plane_angle_for_pair_from_radian

public class FConvert_plane_angle_for_pair_from_radian
          public static Value run(SdaiContext _context, Value pair, Value angle_expr)