Easygoing Eyebeast keira Posted April 11, 2014 Share Posted April 11, 2014 We should have some nodes to do quick and dirty arithmetic and logic checks. For all the following, Stuff Done Flags is the result, Extra 1x is Input A, and Extra 2x is Input B. SDF_ADD: Add SDF A and SDF B, store the result in Stuff Done Flags (A+ SDF_SUB: Subtract SDF A into SDF B, store the result in Stuff Done Flags (A- SDF_MULT: Multiply SDF A and SDF B, store the result in Stuff Done Flags (A* SDF_ADD: Devide SDF A into SDF B, store the result in Stuff Done Flags, rounded down (floor(A/B) SDF_POW: Raise SDF A by SDF B, store the result in Stuff Done Flags (A^ (will SDF limits be a concern?) All of the following assume 0 or -1=FALSE, any other =TRUE SDF_AND: Logical AND SDF_OR: Logical OR SDF_NOT: Logical NOT (ignoring SDF SDF_NAND: Logical NAND SDF_NOR: Logical NOR SDF_XOR: Logical XOR SDF_XNOR: Logical XNOR With a bit of elbow grease this could allow designers to implement some logic beyond what we have now. Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted April 12, 2014 Share Posted April 12, 2014 Definitely agree, with one exception: I doubt we need logical XOR or XNOR. Actually, logical XNOR already exists - it's called "SDF Equal". (I suppose it could differ in treating the SDFs as boolean instead of numeric...) I expect the SDF limit can be dropped entirely, but I'm not sure your logic of where to store the result is good. Why not just use the "pic" field for the result SDF? EDIT: Sorry, "pic" is one field and SDFs need two. Maybe the "message" fields, then. That said, I guess it doesn't particularly matter. Harehunter 1 Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted December 9, 2014 Share Posted December 9, 2014 Thinking over this again, I think logical AND and OR are completely unnecessary - can't you get the same effect by simply chaining nodes together in the right way? The arithmetic ones I'm currently in the process of adding. They'll probably work like this: SDF1, SDF2 - Output SDF (for division, the quotient) Ex1a, Ex1b - Input SDF (left operand) - if ex1b is negative, takes ex1a as a literal value Ex2a, Ex2b - Input SDF (right operand) - if ex2b is negative, takes ex2a as a literal value Ex1c, Ex2c - For division only, output SDF to store the remainder. EDIT: Note - due to the implementation of pointers, the only guaranteed way for ex1a or ex2b to be negative would for it to have been set to -1; other values might get replaced by pointed-to values. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.