<HTML><HEAD><link type="text/css" href="../css/main_styles.css" rel="stylesheet"></HEAD>
<BODY><TITLE>%mqc_check_face_self_intersect</TITLE><H1>%mqc_check_face_self_intersect  </H1><P CLASS="Paragraph">Classname: <B>%mqc_check_face_self_intersect  </B></P><P CLASS="Paragraph">Inherits from: <B><A href=..\checkmate\xug_base_checker.html>%ug_base_checker </A></B></P><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"> </PRE><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">
<B>Description:</B>
    This function performs a check for faces that violate self-intersect.
Parameters:
    (Boolean)  disabled? -    If it is true, the checker is disabled.
                                            Default is False.
    (Boolean)  save_log_in_part -  The flag indicates whether the checking results can
                                       be saved to the part file
                                       Default is True.
    (Integer) log_type            - Error, Warning, Info, or None.
                                    The default is to log error.
    (String)  log_msg             - Additional error/warning/info/None message
Results:
    PASS    --  All faces are not self-intersect .
    FAILED  --  Find faces with self-intersect violation .
Object Log:
    Faces with self-intersect violation .
</PRE><PRE><FONT COLOR= blue>DefClass: %mqc_check_face_self_intersect ( %ug_base_checker );
</FONT></PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( String )                      %test_category: "Modeling.Examine Geometry";
( String )                      %displayed_name: "Faces - Self-Intersection";

</SPAN></FONT></PRE></DIV><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( Boolean Parameter )           disabled?: false;
( Boolean Parameter )           save_log_in_part: True;
</SPAN></FONT></PRE></DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">  Paramter for geometry selection:</PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( List )                    selection:                 {};
</SPAN></FONT></PRE></DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">( List )                     selection_mask:            { face };
( Name )                     selection_mode:            Multiple;
</PRE><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">  Paramter for log_type:</PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( Integer Parameter )           log_type: 1;
</SPAN></FONT></PRE></DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">  Paramter for log_msg:</PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( list )                        log_type_option: { LOG_ERROR, 
                                                   LOG_WARNING, 
                                                   LOG_INFO, 
                                                   LOG_ANY };
( string )                      log_type_label: "Log Option";

</SPAN></FONT></PRE></DIV><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( string Parameter )            log_msg: "";
</SPAN></FONT></PRE></DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">   Checker function</PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( string )                      log_msg_label: "Additional Message";

</SPAN></FONT></PRE></DIV><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>(Any Uncached)  do_check: 
@{
    $ret_obj << ug_mqc_ask_face_self_intersect(  selection:  );

    if TypeName( $ret_obj ) = Integer
    then
    @{              
        if ( $ret_obj != 0 )
        then
        @{
            $usr_msg << if ( log_msg: = "" ) then "" else log_msg: + "~n";
            ug_mqc_logError( $ret_obj, {}, $usr_msg );
        }
        else
            donothing;
    }  
    else donothing;  
  
    If ( -empty?($ret_obj) | ( log_type: = 3 ) )
    Then
    @{
       $objs << first( $ret_obj );
       $msgs << second( $ret_obj );
       $count << Length( $objs );

       loop
       {
           for $indx from 1 to $count;
           for $each_obj is nth( $indx, $objs );
           for $each_str is nth( $indx, $msgs );
           for $each_msg is "Failed on face self-intersect check. " + $each_str;
               
           do ug_mqc_log_object_detail( Nth( log_type:, log_type_option: ),
                                  { $each_obj }, $each_msg );
       };       
    }
    Else  Donothing;
       
 };

</SPAN></FONT></PRE></DIV></TABLE><p class=EndLine>&nbsp;</p><p class=blank>&nbsp;</p></BODY></HTML>