To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.cad.dev.org.ldrawOpen lugnet.cad.dev.org.ldraw in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 CAD / Development / Organizations / LDraw / 1928
1927  |  1929
Subject: 
Re: [Parts Tracker] More BFC Primitives
Newsgroups: 
lugnet.cad.dev.org.ldraw
Date: 
Tue, 9 Apr 2002 00:30:43 GMT
Viewed: 
4023 times
  
Maybe I'm more confused now, or less who knows. But I don't
think I made what I was trying to say clear in that last post.
So here I am replying to myself... :)



Kyle McDonald wrote:

> Steve Bliss wrote:
> 
> > 
> > The problem here is that non-inverting mirroring is very commonplace in
> > LDraw parts, and in some places it can't be avoided (except by
> > inlining).  For example, most parts that appear in a right- and
> > left-hand pair (wings, exhaust pipes, etc) are set up so that only one
> > file has the full DAT code -- the other file of the pair just has a
> > mirrored reference to its partner.
> 
> 
> 
> Non-inverting mirroring? Do you mean mirroring where the author doesn't
> *intend* inverting? or are you saying it's possible to create a matrix
> that would mirror without inverting?
> 
> I see two cases, maybe there are more I'm not seeing??
> 
> The first is intended inversion where a cylinder primitive that is wound
> to face 'outward' is included with a matrix that turns it inside out so
> that the faces face inward, for say the inside surface of a 'tube'.
> In this case, if I understood correctly you would want the Part author to
> *also* add the 0 BFC INVERTNEXT  command??  To me that seems uneeded if
> the Matrix already takes care of it. The program now, instead of flipping
> the faces because of the command, needs to also not 'unflip' them because
> of the matrix. No?


That last sentance doesn't really get across what I was trying to say I think.
Maybe some pseudo code??

It seems to me that the current usage would be:

if( preceeding_line == '0 BFC INVERTNEXT' ) then
   {
     if( ! isMirrorMatrix( matrix ) )  \\ Not mirrored so *do* the INVERTNEXT.
       flip_faces( sub_file );
     else
       do_nothing();                   \\ Mirroring alreay inverts the subfile
                                       \\ so ignore the INVERTNEXT
   }
else
   {
     if( isMirrorMatrix( matrix ) )   \\ Not inverted, but mirrored, so *undo*
       flip_faces( sub_file );        \\ the inversion the mirror matrix caused.
     else
       do_nothing();                  \\ Not inverted, not mirrored, do nothing.
   }

attach_geometry(matrix, sub_file);

Whereas, I was suggesting:

if( preceeding_line == '0 BFC INVERTNEXT' )
   flip_faces( subfile );

Of course this would *require* the mirror's that didn't want inversion
to have '0 BFC INVERTNEXT' inserted before them. I know this would be
alot of work for the existing library, but I would think it would be
pretty easy for new parts, since the author knows wether he wants the
inversion that the mirroring will get him/her.

Are there cases where adding the INVERTNEXT before the mirror matrix
would *not* undo the inversion? I'm not really arguing to change things,
so much as I'm trying to make sure I understand all the details. I
think it'd be worth changing, but I understand it's alot of work too.

-Kyle



--
                                    _
-------------------------------ooO( )Ooo-------------------------------
Kyle J. McDonald                 (o o)
                                  |||||

                                  \\\//
                                  (o o)            kmcdonald@BigFoot.COM
-------------------------------ooO(_)Ooo-------------------------------



Message is in Reply To:
  Re: [Parts Tracker] More BFC Primitives
 
Steve Bliss wrote: > In lugnet.cad.dev.org.ldraw, Kyle McDonald wrote: > [snip more] > > You understand the usage correctly. Except there's no special tie > between a 'mirroring' subfile reference and the INVERTNEXT command. > Authors won't (...) (24 years ago, 9-Apr-02, to lugnet.cad.dev.org.ldraw)

21 Messages in This Thread:





Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR