X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=LeMQtHJasBzC1bNGj1c59xkimBuLBkeZUlf/72GVaF0=; b=fyN7FJQWfdvA3EpIDYI6PQnXGwumk4UsHSOLUEZW5O/Kl/lFhEjJD9IZS2vil1UfZ9 W7WyvqqVd4k3kG421QUtDoVfuelvVm886ET1LnIP6KqP32lie6EMe9Rp4Htn0D3tAI74 Uj7UeWR6Une+NBvPVep2WZaKtLgREjTl8hhmFooK84NmPjC98jkOz9KLFR8tRMuztT2+ aa2/qBZXRRk9KMNCoBfwSIZNCyrcmw0wR7EQZHa6ClH0hUpMFbsqnpYsIg8ngV6F1ejB jP9GkY4LeDMNdlMOAMKPpUtq4FFdfxgsvQ1+jx2lGiXl1X9S9VFBmMh5PAX3f1cuv+Uj rb1g== MIME-Version: 1.0 X-Received: by 10.180.187.227 with SMTP id fv3mr10193012wic.57.1442098079586; Sat, 12 Sep 2015 15:47:59 -0700 (PDT) In-Reply-To: <201509122220.t8CMKbpY024398@envy.delorie.com> References: <55F3FD8F DOT 4090709 AT jump-ing DOT de> <201509122220 DOT t8CMKbpY024398 AT envy DOT delorie DOT com> Date: Sat, 12 Sep 2015 14:47:59 -0800 Message-ID: Subject: Re: [geda-user] shortest way towards parsing .pcb files outside pcb From: "Britton Kerin (britton DOT kerin AT gmail DOT com) [via geda-user AT delorie DOT com]" To: geda-user AT delorie DOT com Content-Type: text/plain; charset=UTF-8 Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Sat, Sep 12, 2015 at 2:20 PM, DJ Delorie wrote: > >> 3. Refactor all the rest of pcb to somehow use structures that don't >> mix together board data, settings, rtrees, etc. > > Worse, a *lot* of the performance of pcb relies on being able to do a > 2-D search for objects intersecting a bounding box. The r-trees are a > key part of that, and really need to be kept in sync with other data > representations. As I mentioned in a previous post, I woulnd't try to keep a dot-pcp-equivalent data structure alive during execution of pcb, so syncing wouldn't be required. I would parse to the former structure, then destructively translate the result to PCBType (change ownership of it's pointer fields to PCBType instance).