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; }
/* --------------------------------------------------------------------------- * 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; }
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; } }
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; } }
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; } }
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; }