|
FUNCTION frame_associated_to_background (frame : rigid_placement, background : kinematic_frame_background) : BOOLEAN; LOCAL rep_bag : BAG OF kinematic_frame_background_representation ; trf_bag : BAG OF kinematic_frame_based_transformation ; trm_bag : BAG OF kinematic_frame_based_transformation ; ass_bag : BAG OF kinematic_frame_background_representation_association ; rep : kinematic_frame_background_representation ; ass : kinematic_frame_background_representation_association ; END_LOCAL ; rep_bag := QUERY ( bg <* USEDIN ( background , 'kinematic_structure_schema.' + 'representation.items' ) | 'kinematic_structure_schema.' + 'kinematic_frame_background_representation' IN TYPEOF ( bg ) ) ; IF SIZEOF ( rep_bag ) = 0 THEN RETURN ( FALSE ) ; END_IF ; trf_bag := USEDIN ( frame , 'kinematic_structure_schema.' + 'kinematic_frame_based_transformation.' + 'transformator' ) ; IF SIZEOF ( trf_bag ) = 0 THEN RETURN ( FALSE ) ; END_IF ; REPEAT i := 1 TO HIINDEX ( rep_bag ) ; rep := rep_bag [ i ] ; ass_bag := QUERY ( kfbra <* USEDIN ( rep , 'kinematic_structure_schema.' + 'representation_relationship.rep_2' ) | 'kinematic_structure_schema.' + 'kinematic_frame_background_representation_association' IN TYPEOF ( kfbra ) ) ; IF SIZEOF ( ass_bag ) > 0 THEN REPEAT j := 1 TO HIINDEX ( ass_bag ) ; ass := ass_bag [ j ] ; trm_bag := QUERY ( trm <* trf_bag | ( trm :=: ass \ representation_relationship_with_transformation . transformation_operator ) ) ; IF SIZEOF ( trm_bag ) > 0 THEN RETURN ( TRUE ) ; END_IF ; END_REPEAT ; END_IF ; END_REPEAT ; RETURN ( FALSE ) ; END_FUNCTION; -- frame_associated_to_background |
|
public class FFrame_associated_to_background public static Value run(SdaiContext _context, Value frame, Value background) |