| | Re: MPD file loading search order
|
|
(...) It's my work system, but I rarely use 2005. Most of my customer projects demand use of Delphi 6 Pro. Because that's what the customer itself owns. I maintain their code so I have to use their tools. Because of this I don't justify spending (...) (18 years ago, 27-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) Probably. As I was reading the thread it was *loading* the MPD file that was considered two-pass, and my algorithm is definitely only one-pass for that (and no extra fixups after reading it all). OTOH, if the file should be rendered on screen (...) (18 years ago, 27-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) Don't know about that, source-wise (all my work projects are still Delphi, Win32 only). In .NET you definitely don't have to care about the language an assembly was written in, you just use it. (...) If that is your work development system, I (...) (18 years ago, 27-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) I suspect there's two definitions of "pass" at work here. I would consider a two pass algorithm to be anything requiring two loops (which we must have either way as their is no reference order specified in MPDs). Another way of considering it (...) (18 years ago, 27-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) Actually I can't get my head around 'searching for a file in the cache' as equivalent to 'do a second pass of the source file'. Every part is searched for in the cache. Each source line is only read and parsed once. What am I not (...) (18 years ago, 26-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) Delphi 2005 (9) is part of Borland Developer Studio (BDS) 2005. It also contains C# Builder and Delphi for .net compilers. But I mainly use Delphi for win 32 development. Since BDS 2006 C++ Builder is also included in the suite. But I decided (...) (18 years ago, 26-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) Is Delphi 2005 Delphi (Pascal) only? I've got BDS2006 at work and that contains both Delphi and C++ and C#. Going .NET would make it easy (?) to use a C++ library from Delphi, I think. (18 years ago, 26-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) Thanks for the pointers, I'm working with Delphi 2005 Pro win32 at the moment (LD4DModeler was written in Delphi 6 Pro). So I can't use you're library. But I will certainly take a look at it. I sometimes write stuff in C++, but for a living (...) (18 years ago, 26-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
Lars C. Hassing wrote: [snip detailed explanation] Thanks for the insight of you're L3P ldraw reader routines. (...) If you mean by public, public to all children and not the whole world, this fits perfectly in Anders Isaksson vision. See my reply (...) (18 years ago, 26-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) This is actually very logical. And it fits in the description from the 2000 post pointed to by Lars. So all objects in the mpd are available for recursive children of the main part, being the first place to search. (...) I don't think stuff in (...) (18 years ago, 26-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) That is a two pass algorithm. It's optimised by only searching files that have already appeared but the search in stage II is a second pass. Tim (18 years ago, 26-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) What about the following algorithm (assuming everything is cached): - whenever a file reference is read, search for the file in the cache. if not found, add it as an empty file and flag it as 'incomplete' - whenever a 'file' is seen, search (...) (18 years ago, 26-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) It seems to me that an MPD is functionally equal to a disk folder which has been added to the (beginning of the) search path for parts. No more, no less. If a part is found in the search path it is used, if it is not found it is ignored (with (...) (18 years ago, 26-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) You're right, but Jacob invented the MPD, so I guess I just followed his wish, though I would have preferred the scoping. Also he suggests a way to get scoping anyway: "0 FILE house1/house1.dat" which nicely reflects the storage on the disk. (...) (18 years ago, 26-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) Wow, that's impressive. I'm pretty sure it's accidental, too. (Accidental on my part; your L3P parser was obviously there first.) (...) LDView only has one file open at a time also (unless I'm mis-remembering my implementation), since the (...) (18 years ago, 26-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) You're welcome. (...) I think local scope is the "correct" thing to do as long as local scope means that only files inside an MPD file can access other files inside the MDP file. Files stored external to the MPD shouldn't, in theory, be able (...) (18 years ago, 26-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) I actually consider that to be two-pass, and that's essentially what LDView does. The only extra thing it does is that it checks for 0 PART meta-commands in the first pass, and puts the file data for the sub-files into their own separate (...) (18 years ago, 26-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) Well, if you read all postings on MPD through the last seven years you should be able to piece the correct answer together :-) I believe the L3 parser (used in L3P, L3Lab and "ldglite -l3") reflects that information. > However, I can tell (...) (18 years ago, 25-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) Sorry, you're right every part in the mpd should see any of the other parts. May be Ldraw.org should post a set of 'testcase' files to be used as a reference for programmers. For each file there should be a description of the expected results (...) (18 years ago, 25-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) Is that what I said? I didn't mean to... If an MPD contains main.dat, a.dat, and b.dat, then a.dat should be able to 'see' b.dat. I make heavy use of the MPD format while working on part files. Inside a single MPD, I typically have long chains (...) (18 years ago, 25-Jul-06, to lugnet.cad.dev)
|