Ejemplo n.º 1
0
void
EraseObject (int type, void *lptr, void *ptr)
{
  switch (type)
    {
    case VIA_TYPE:
    case PIN_TYPE:
      ErasePin ((PinType *) ptr);
      break;
    case TEXT_TYPE:
    case ELEMENTNAME_TYPE:
      EraseText ((LayerType *)lptr, (TextType *) ptr);
      break;
    case POLYGON_TYPE:
      ErasePolygon ((PolygonType *) ptr);
      break;
    case ELEMENT_TYPE:
      EraseElement ((ElementType *) ptr);
      break;
    case LINE_TYPE:
    case ELEMENTLINE_TYPE:
    case RATLINE_TYPE:
      EraseLine ((LineType *) ptr);
      break;
    case PAD_TYPE:
      ErasePad ((PadType *) ptr);
      break;
    case ARC_TYPE:
    case ELEMENTARC_TYPE:
      EraseArc ((ArcType *) ptr);
      break;
    default:
      Message ("hace: Internal ERROR, trying to erase an unknown type\n");
    }
}
            void WorldPinsService::RemovePin(WorldPinItemModel* pinItemModel)
            {
                Eegeo::Pins::Pin* pPin = m_pinRepository.GetPinById(pinItemModel->Id());

                //EXAMPLE_LOG("Pin removed\n");
                m_pinRepository.RemovePin(*pPin);
                ErasePin(pinItemModel->Id());

                m_worldPinsRepository.RemoveItem(pinItemModel);
                Eegeo_DELETE pinItemModel;
            }
Ejemplo n.º 3
0
/* ---------------------------------------------------------------------------
 * erases all pins and pads of an element
 */
void
EraseElementPinsAndPads (ElementType *Element)
{
  PIN_LOOP (Element);
  {
    ErasePin (pin);
  }
  END_LOOP;
  PAD_LOOP (Element);
  {
    ErasePad (pad);
  }
  END_LOOP;
}
Ejemplo n.º 4
0
void *ChangeElement2ndSize( ElementTypePtr Element )
{
  int eax;
  int edx;
  int ebx;
  int edi;
  Boolean changed;
  BDimension value;
{
  Cardinal n;
  Cardinal sn = Element->PinN;
  PinTypePtr pin;
  if ( Element->PinN )
  {
    n = 0;
    changed = 0;
    while ( 1 )
    {
      if ( value + -400 <= 0x9894f0 && ( ( ( pin->Flags.f/*.1_1of4*/ & 8 ) & 255 ) || value < pin->Thickness + -399 ) && pin->DrillingHole != value )
      {
        AddObjectTo2ndSizeUndoList( 256, (void*)Element, (void*)pin, (void*)pin );
        ErasePin( pin );
        pin->DrillingHole = value;
        DrawPin( pin, 0 );
        if ( ( pin->Flags.f/*.1_1of4*/ & 8 ) & 255 )
        {
          RestoreToPolygon( &PCB->Data, 256, (void*)Element, (void*)pin );
          AddObjectToSizeUndoList( 256, (void*)Element, (void*)pin, (void*)pin );
          pin->Thickness = value;
          ClearFromPolygon( &PCB->Data, 256, (void*)Element, (void*)pin );
          changed = 1;
          sn = Element->PinN;
        }
        else
        {
          sn = *(int*)(ebp_36 + 224);
          changed = 1;
        }
      }
      if ( sn == 0 || sn <= ( sn + n + 1 ) - Element->PinN )
        break;
      else
      {
      }
    }
    return ebp_36;
  }
  return 0;
}
}
Ejemplo n.º 5
0
void *ChangePinClearSize( ElementTypePtr Element, PinTypePtr Pin )
{
  int eax;
  int ebx;
  int esi;
  BDimension value = Absolute;
  value = ( Pin->Clearance + Delta < ( PCB->Bloat + 1 ) * 2 ? Pin->Clearance + Delta : ( PCB->Bloat + 1 ) * 2 ) <= 0x989680 ? 0x989680 : Pin->Clearance + Delta < ( PCB->Bloat + 1 ) * 2 ? Pin->Clearance + Delta : ( PCB->Bloat + 1 ) * 2;
  if ( Pin->Clearance != ( ( Pin->Clearance + Delta < ( PCB->Bloat + 1 ) * 2 ? Pin->Clearance + Delta : ( PCB->Bloat + 1 ) * 2 ) <= 0x989680 ? 10000000 : Pin->Clearance + Delta < ( PCB->Bloat + 1 ) * 2 ? Pin->Clearance + Delta : ( PCB->Bloat + 1 ) * 2 ) )
  {
    RestoreToPolygon( &PCB->Data, 256, (void*)Element, (void*)Pin );
    AddObjectToClearSizeUndoList( 256, (void*)Element, (void*)Pin, (void*)Pin );
    ErasePin( Pin );
    r_delete_entry( &PCB->Data->pin_tree, (int)( &Pin->BoundingBox ) );
    Pin->Clearance = value;
    SetElementBoundingBox( &PCB->Data, Element, &PCB->Font );
    ClearFromPolygon( &PCB->Data, 256, (void*)Element, (void*)Pin );
    DrawPin( Pin, 0 );
    return (void*)Pin;
  }
}
Ejemplo n.º 6
0
void *ChangePinSize( ElementTypePtr Element, PinTypePtr Pin )
{
  int eax;
  int ebx;
  int esi;
  int edi;
  BDimension value = Absolute;
  if ( value <= 0x989680 && !( ( Pin->Flags.f & 8 ) & 255 ) && value > 1999 && Pin->DrillingHole + 399 < value && Pin->Thickness != value )
  {
    AddObjectToSizeUndoList( 256, (void*)Element, (void*)Pin, (void*)Pin );
    AddObjectToMaskSizeUndoList( 256, (void*)Element, (void*)Pin, (void*)Pin );
    ErasePin( Pin );
    r_delete_entry( &PCB->Data->pin_tree, (int)( &Pin->BoundingBox ) );
    RestoreToPolygon( &PCB->Data, 256, (void*)Element, (void*)Pin );
    Pin->Thickness = value;
    Pin->Mask = ( Pin->Mask + value ) - Pin->Thickness;
    SetElementBoundingBox( &PCB->Data, Element, &PCB->Font );
    ClearFromPolygon( &PCB->Data, 256, (void*)Element, (void*)Pin );
    DrawPin( Pin, 0 );
    return (void*)Pin;
  }
}
Ejemplo n.º 7
0
void *ChangePin2ndSize( ElementTypePtr Element, PinTypePtr Pin )
{
  int eax;
  int ebx;
  int esi;
  int edi;
  BDimension value = Absolute;
  if ( value + -400 > 0x9894f0 || ( !( ( Pin->Flags.f & 8 ) & 255 ) && Pin->Thickness + -399 <= value ) || Pin->DrillingHole == value )
  {
  }
  AddObjectTo2ndSizeUndoList( 256, (void*)Element, (void*)Pin, (void*)Pin );
  ErasePin( Pin );
  Pin->DrillingHole = value;
  DrawPin( Pin, 0 );
  if ( ( Pin->Flags.f/*.1_1of4*/ & 8 ) & 255 )
  {
    RestoreToPolygon( &PCB->Data, 256, (void*)Element, (void*)Pin );
    AddObjectToSizeUndoList( 256, (void*)Element, (void*)Pin, (void*)Pin );
    Pin->Thickness = value;
    ClearFromPolygon( &PCB->Data, 256, (void*)Element, (void*)Pin );
    return (void*)Pin;
  }
  return (void*)Pin;
}