/******************************************************************************
             Copyright (c) 1999 Unigraphics Solutions, Inc.
                       Unpublished - All Rights Reserved

*******************************************************************************/

/*
This example requires an open part with view dependent objects.
*/

#include <stdlib.h>
#include <stdio.h>
#include <uf.h>
#include <uf_defs.h>
#include <uf_draw.h>
#include <uf_obj.h>
#include <uf_part.h>
#include <uf_view.h>
void ufusr(char *param, int *retcod, int param_len)
{
  int         ifail = 0;
  tag_t       object_tag = NULL_TAG;
  tag_t       view_tag = NULL_TAG;
  tag_t       part_tag = NULL_TAG;
  char        *view_name = "TOP@1";
  char        *object_name = "VIEWOBJ";
  char        error_message[133];
    
  ifail = UF_initialize();
    
  if( !ifail )
    part_tag = UF_PART_ask_display_part();
    
  if( !ifail && part_tag != NULL_TAG ) 
  {
      /* This example uses a part with a named object. */
      ifail = UF_OBJ_cycle_by_name( object_name, &object_tag );
  }
  if( !ifail && object_tag != NULL_TAG )
      ifail = UF_VIEW_ask_tag_of_view_name( view_name, &view_tag );
    
  if( !ifail && view_tag != NULL_TAG )
      ifail = UF_VIEW_convert_to_model( view_tag, object_tag );
  
  printf( "UF_VIEW_convert_to_model() sample " );
  if( ifail )
  {
      ifail = UF_get_fail_message( ifail, error_message );
      printf( "fails. \nError is:%s\n", error_message );
  }
  else if( part_tag == NULL_TAG )
      printf( "fails.\nError is: no active part.\n" );
  else if ( object_tag == NULL_TAG )
      printf( "fails.\nError is: named object not found.\n" );
  else if ( view_tag == NULL_TAG )
      printf( "fails.\nError is: view not found.\n" );
  else
      printf( "is successful.\n" );
  ifail = UF_terminate();
}
