Exemple #1
0
void *ChangeViaSize( PinTypePtr Via )
{
  int eax;
  int ebx;
  int esi;
  BDimension value = Absolute;
  if ( value > 0x989680 || ( ( Via->Flags.f & 8 ) & 255 ) || value <= 1999 || value <= Via->DrillingHole + 399 || Via->Thickness == value )
  {
  }
  AddObjectToSizeUndoList( 1, (void*)Via, (void*)Via, (void*)Via );
  EraseVia( Via );
  r_delete_entry( &PCB->Data->via_tree, (int)( &Via->BoundingBox ) );
  RestoreToPolygon( &PCB->Data, 256, (void*)Via, (void*)Via );
  if ( Via->Mask )
  {
    AddObjectToMaskSizeUndoList( 1, (void*)Via, (void*)Via, (void*)Via );
    Via->Mask = ( Via->Mask + value ) - Via->Thickness;
  }
  Via->Thickness = value;
  SetPinBoundingBox( Via );
  r_insert_entry( &PCB->Data->via_tree, (int)( &Via->BoundingBox ), 0 );
  ClearFromPolygon( &PCB->Data, 1, (void*)Via, (void*)Via );
  DrawVia( Via, 0 );
  return (void*)Via;
}
Exemple #2
0
void *ChangeViaClearSize( PinTypePtr Via )
{
  int eax;
  int ecx;
  int ebx;
  int esi;
  BDimension value = Absolute;
  if ( ( Via->Flags.f & 8192 ) == 0 )
  {
    value = ( value <= 0x989680 ? 0x989680 : value ) < 0 ? value <= 0x989680 ? 10000000 : value : Via->Flags.f & 8192;
    if ( Delta < 0 )
      value = value < ( PCB->Bloat * 2 ) ? value : Via->Flags.f & 8192;
    else
    if ( !1 )
      value = value < ( PCB->Bloat * 2 ) ? value : ( PCB->Bloat + 1 ) * 2;
      if ( Via->Clearance != value )
      {
        RestoreToPolygon( &PCB->Data, 1, (void*)Via, (void*)Via );
        AddObjectToClearSizeUndoList( 1, (void*)Via, (void*)Via, (void*)Via );
        EraseVia( Via );
        r_delete_entry( &PCB->Data->via_tree, (int)( &Via->BoundingBox ) );
        Via->Clearance = value;
        SetPinBoundingBox( Via );
        r_insert_entry( &PCB->Data->via_tree, (int)( &Via->BoundingBox ), 0 );
        ClearFromPolygon( &PCB->Data, 1, (void*)Via, (void*)Via );
        DrawVia( Via, 0 );
        Via->Element = 0;
        return (void*)Via;
      }
  }
  return 0;
}
Exemple #3
0
/* ---------------------------------------------------------------------------
 * removes a via
 */
static void *
RemoveVia (PinTypePtr Via)
{
  /* erase from screen and memory */
  if (PCB->ViaOn)
    {
      EraseVia (Via);
      if (!Bulk)
	Draw ();
    }
  MoveObjectToRemoveUndoList (VIA_TYPE, Via, Via, Via);
  return NULL;
}
Exemple #4
0
/* ---------------------------------------------------------------------------
 * moves a via
 */
static void *
MoveVia (PinTypePtr Via)
{
  r_delete_entry (PCB->Data->via_tree, (BoxType *)Via);
  RestoreToPolygon (PCB->Data, VIA_TYPE, Via, Via);
  MOVE_VIA_LOWLEVEL (Via, DeltaX, DeltaY);
  if (PCB->ViaOn)
    EraseVia (Via);
  r_insert_entry (PCB->Data->via_tree, (BoxType *)Via, 0);
  ClearFromPolygon (PCB->Data, VIA_TYPE, Via, Via);
  if (PCB->ViaOn)
    {
      DrawVia (Via);
      Draw ();
    }
  return (Via);
}
Exemple #5
0
void *ChangeVia2ndSize( PinTypePtr Via )
{
  int eax;
  int ebx;
  int esi;
  BDimension value = Absolute;
  if ( value + -400 > 0x9894f0 || ( !( ( Via->Flags.f & 8 ) & 255 ) && Via->Thickness + -399 <= value ) || Via->DrillingHole == value )
  {
  }
  AddObjectTo2ndSizeUndoList( 1, (void*)Via, (void*)Via, (void*)Via );
  EraseVia( Via );
  Via->DrillingHole = value;
  if ( ( Via->Flags.f/*.1_1of4*/ & 8 ) & 255 )
  {
    RestoreToPolygon( &PCB->Data, 1, (void*)Via, (void*)Via );
    AddObjectToSizeUndoList( 1, (void*)Via, (void*)Via, (void*)Via );
    Via->Thickness = value;
    ClearFromPolygon( &PCB->Data, 1, (void*)Via, (void*)Via );
  }
  DrawVia( Via, 0 );
  return (void*)Via;
}
Exemple #6
0
Boolean ChangeHole( PinTypePtr Via )
{
  EraseVia( Via );
  AddObjectToFlagUndoList( 1, (void*)Via, (void*)Via, (void*)Via );
  Via->Flags.f ^= 8;
  if ( ( (unsigned char)( Via->Flags.f ^ 8 ) & 8 ) & 255 )
  {
    RestoreToPolygon( &PCB->Data, 1, (void*)Via, (void*)Via );
    AddObjectToSizeUndoList( 1, (void*)Via, (void*)Via, (void*)Via );
    Via->Mask = Via->DrillingHole;
    Via->Thickness = Via->DrillingHole;
    ClearFromPolygon( &PCB->Data, 1, (void*)Via, (void*)Via );
  }
  else
  {
    AddObjectTo2ndSizeUndoList( 1, (void*)Via, (void*)Via, (void*)Via );
    Via->DrillingHole = Via->Thickness + -400;
  }
  DrawVia( Via, 0 );
  Draw( );
  return 1;
}