Difference for main/fvi.c from version 1.2 to 1.3


version 1.2 version 1.3
Line 22
 
Line 22
  * New home for find_vector_intersection()   * New home for find_vector_intersection()
  *    *
  * $Log$   * $Log$
    * Revision 1.3  2000/06/25 08:34:29  sekmu
    * file-line for segfault info
    *
  * Revision 1.2  2000/01/19 04:48:36  sekmu   * Revision 1.2  2000/01/19 04:48:36  sekmu
  * added debug info for illegal side type   * added debug info for illegal side type
  *   *
Line 902
 
Line 905
  //Assert(check_point_in_seg(p0,startseg,0).centermask==0); //start point not in seg   //Assert(check_point_in_seg(p0,startseg,0).centermask==0); //start point not in seg
   
  // Viewer is not in segment as claimed, so say there is no hit.   // Viewer is not in segment as claimed, so say there is no hit.
  if(!(get_seg_masks(fq->p0,fq->startseg,0).centermask==0)) {          if(!(get_seg_masks(fq->p0,fq->startseg,0,__FILE__,__LINE__).centermask==0)) {
   
  hit_data->hit_type = HIT_BAD_P0;   hit_data->hit_type = HIT_BAD_P0;
  hit_data->hit_pnt = *fq->p0;   hit_data->hit_pnt = *fq->p0;
Line 923
 
Line 926
   
  hit_type = fvi_sub(&hit_pnt,&hit_seg2,fq->p0,fq->startseg,fq->p1,fq->rad,fq->thisobjnum,fq->ignore_obj_list,fq->flags,hit_data->seglist,&hit_data->n_segs,-2);   hit_type = fvi_sub(&hit_pnt,&hit_seg2,fq->p0,fq->startseg,fq->p1,fq->rad,fq->thisobjnum,fq->ignore_obj_list,fq->flags,hit_data->seglist,&hit_data->n_segs,-2);
  //!!hit_seg = find_point_seg(&hit_pnt,fq->startseg);   //!!hit_seg = find_point_seg(&hit_pnt,fq->startseg);
  if (hit_seg2!=-1 && !get_seg_masks(&hit_pnt,hit_seg2,0).centermask)          if (hit_seg2!=-1 && !get_seg_masks(&hit_pnt,hit_seg2,0,__FILE__,__LINE__).centermask)
  hit_seg = hit_seg2;   hit_seg = hit_seg2;
  else   else
  hit_seg = find_point_seg(&hit_pnt,fq->startseg);   hit_seg = find_point_seg(&hit_pnt,fq->startseg);
   
 //MATT: TAKE OUT THIS HACK AND FIX THE BUGS!  //MATT: TAKE OUT THIS HACK AND FIX THE BUGS!
  if (hit_type == HIT_WALL && hit_seg==-1)   if (hit_type == HIT_WALL && hit_seg==-1)
  if (fvi_hit_seg2!=-1 && get_seg_masks(&hit_pnt,fvi_hit_seg2,0).centermask==0)                  if (fvi_hit_seg2!=-1 && get_seg_masks(&hit_pnt,fvi_hit_seg2,0,__FILE__,__LINE__).centermask==0)
  hit_seg = fvi_hit_seg2;   hit_seg = fvi_hit_seg2;
   
  if (hit_seg == -1) {   if (hit_seg == -1) {
Line 1001
 
Line 1004
  hit_data->hit_object = fvi_hit_object; //looks at global   hit_data->hit_object = fvi_hit_object; //looks at global
  hit_data->hit_wallnorm = wall_norm; //looks at global   hit_data->hit_wallnorm = wall_norm; //looks at global
   
 // if(hit_seg!=-1 && get_seg_masks(&hit_data->hit_pnt,hit_data->hit_seg,0).centermask!=0)  //      if(hit_seg!=-1 && get_seg_masks(&hit_data->hit_pnt,hit_data->hit_seg,0,__FILE__,__LINE__).centermask!=0)
 // Int3();  // Int3();
   
  return hit_type;   return hit_type;
Line 1102
 
Line 1105
   
  //now, check segment walls   //now, check segment walls
   
  startmask = get_seg_masks(p0,startseg,rad).facemask;          startmask = get_seg_masks(p0,startseg,rad,__FILE__,__LINE__).facemask;
   
  masks = get_seg_masks(p1,startseg,rad);    //on back of which faces?          masks = get_seg_masks(p1,startseg,rad,__FILE__,__LINE__);    //on back of which faces?
  endmask = masks.facemask;   endmask = masks.facemask;
  //@@sidemask = masks.sidemask;   //@@sidemask = masks.sidemask;
  centermask = masks.centermask;   centermask = masks.centermask;
Line 1249
 
Line 1252
  #endif   #endif
    
    
  if (get_seg_masks(&hit_point,startseg,rad).centermask==0)                                                                          if (get_seg_masks(&hit_point,startseg,rad,__FILE__,__LINE__).centermask==0)
  hit_seg = startseg;             //hit in this segment   hit_seg = startseg;             //hit in this segment
  else   else
  fvi_hit_seg2 = startseg;   fvi_hit_seg2 = startseg;
Line 1480
 
Line 1483
   
  segs_visited[n_segs_visited++] = segnum;   segs_visited[n_segs_visited++] = segnum;
   
  facemask = get_seg_masks(pnt,segnum,rad).facemask;          facemask = get_seg_masks(pnt,segnum,rad,__FILE__,__LINE__).facemask;
   
  seg = &Segments[segnum];   seg = &Segments[segnum];
   

Legend:
line(s) removed in v.1.2 
line(s) changed
 line(s) added in v.1.3