| | 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)
|
|
| | Re: MPD file loading search order
|
|
(...) You can do it in one pass (if you don't count the loading of the file to a stringlist). Wile walking through the file you build you're objectlist with subparts. Afterwards you go recursively through the list of subparts. This way all mpd (...) (18 years ago, 25-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) Snip, very thourho explanation, thanks! (...) I was thinking of doing the local scope approach mentioned by Steve. But maybe I keep it optional realizing I always end up disappointing some people with ether approach. I was planning to create (...) (18 years ago, 25-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) I mentioned in my other (long) post that I don't think that MPD files should be required to have a .mpd extension. However, I'd like to add more here in answer to your specific question. I could be wrong, but I'm almost positive that it is (...) (18 years ago, 25-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
As you have pointed out, the spec is indeed ambiguous. Consequently, there's probably no correct answer as to how things should work. However, I can tell you what I do in LDView, so that you have an idea of how at least one MPD-compatible program (...) (18 years ago, 25-Jul-06, to lugnet.cad.dev, FTX)
|
|
| | Re: MPD file loading search order
|
|
Thanks Tim and Steve, I think I will go with Steve's advise to let only the main part in the mpd see the other parts in the mpd. This will give a much cleaner recursive approach, in which I can easily support sub mpd's. Further more I think I will (...) (18 years ago, 25-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) Tim pointed you at the actual MPD spec. You may notice that is is vague on a lot of points -- it basically leaves it up to the program authors. My comments below are what makes sense to me, thinking as someone who might create complex MPDs. (...) (18 years ago, 25-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) My apologies. I just looked there more closely and it doesn't seem to answer anything. To answer what I'm fairly sure of (but far from certain): I think that the correct lookup order is internal, ., [MODELS], [PARTS] Yes MPD files must have (...) (18 years ago, 25-Jul-06, to lugnet.cad.dev)
|
|
| | Re: MPD file loading search order
|
|
(...) --SNIP-- (...) Hi Roland, Try (URL) for the file specifications. Hopefully that should answer some queries. Tim (18 years ago, 25-Jul-06, to lugnet.cad.dev)
|
|
| | MPD file loading search order
|
|
Hello All, I'm implementing a LDraw file loader and was wondering about some details concerning mpd. I could not found enough info about this elsewhere, or I may overlooked it. [1] When loading a MPD file should I keep checking the first level of (...) (18 years ago, 25-Jul-06, to lugnet.cad.dev)
|
|
| | Re: Unable to compile LDGLite 1.0.7 from Source on SuSe Linux
|
|
I'd use the "daily snapshot". It should match the latest Windows and Mac releases. I just never got around to testing linux build of of version 1.1.8, as you can see. Anyhow, main.c should include the bumpy case "StdAfx.h". I stuck a few linux stubs (...) (18 years ago, 30-May-06, to lugnet.cad.dev)
|