SetUniqueIP

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 27/07/2004 at 13:40, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   8.503 
Platform:   Windows  ; Mac  ;  Mac OSX  ; 
Language(s) :     C++  ;

---------
What is the appropriate use of this?

I assume that the IPs only need to be unqiue for the current hierarchy. I have a generator that takes inputs and generates multiple object hierarchies. In the simplest case I might generate with an input object such as:

NULL
1
1
1
1
1

Since these are based off particles I assume I would not set a unique IP for NULL and the other obejcts would go in order ( 1, 2, 3, 4, 5 ). If 4 was dropped then it would be ( 1, 2, 3, 5 ). Yes, I did set OBJECT_UNIQUEENUMERATION flag. I am actually having issues that it will freeze up ( loop ) when I go to redner out using anything that uses this infromation ( including the built in Vector Motion Blur ). A working example that uses multiple objects would be very helpful.

Best Regards,
darf - coreav

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 30/07/2004 at 12:02, xxxxxxxx wrote:

We need an answer to this question please.

regards,
David Farmer

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 31/07/2004 at 04:13, xxxxxxxx wrote:

Sorry for the delay, but I've been away for a few days. I'll try to think of a good example, but what would help me the most would be a small samples that crashes the VMB. (Reproducible crashes are always a good way to get developer attention... 🙂
Also, is there anything wrong with your sample? Should that be 1...5 rather than 1...1? What is input and what is output? Sorry for the confusion...

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 31/07/2004 at 08:41, xxxxxxxx wrote:

The 1's are just object names. I explained in the paragraph how I was numbering them. I am just fishing for an SDK example that would use SetUniqueIP correctly.

Best Regards,
darf

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 31/07/2004 at 16:37, xxxxxxxx wrote:

Ok, so you have one input object ("1") that you create five copies of, some of which are only there some of the time? I'll see if I can reproduce the crash and/or create a working example.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 31/07/2004 at 17:10, xxxxxxxx wrote:

Thank you.

darf

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 03/08/2004 at 03:15, xxxxxxxx wrote:

SetUniqueIP()
I finally got around to trying the SetUniqueIP() thing. However, I couldn't find any problems with vector motion blur. This is the code I had:

    
    
    BaseObject *AtomObject::GetVirtualObjects(PluginObject *op, HierarchyHelp *hh)  
    {  
      BaseObject *orig = op->GetDown();   
        
      // return if no input object is available  
      if (!orig) return NULL; 
    
    
    
    
      // request polygonized input  
      hh->AddVFlags(VFLAG_POLYGONAL);   
        
      Bool dirty = TRUE;
    
    
    
    
      // generate polygonalized clone of input object  
      BaseObject *main=NULL,*res=op->GetAndCheckHierarchyClone(hh,orig,HCLONE_ASPOLY,&dirty,FALSE,NULL);
    
    
    
    
      // if !dirty object is already cached and doesn't need to be rebuilt  
      if (!dirty) return res;   
      if (!res)   return NULL; 
    
    
    
    
      // group all further objects with this null object  
      main = BaseObject::Alloc(Onull);   
      if (!main) goto Error;  
        
      {  
        LONG frame = hh->GetDocument()->GetTime().GetFrame(hh->GetDocument()->GetFps());  
        for (LONG i = 2; i <= 7; ++i)  
        {  
          if (!(frame % i)) continue;  
            
          BaseObject* cl = static_cast<BaseObject*>(res->GetClone(0,NULL));  
          cl->SetPos(Vector(i*100, 0, 0));  
          cl->SetUniqueIP(i);  
            
          cl->InsertUnder(main);  
        }  
        blDelete(res);  
      }
    
    
    
    
      return main;
    
    
    
    
    Error:  
      blDelete(res);  
      blDelete(main);  
      return NULL;  
    }

I've sent the scene I used to you by email. It animates just fine with VMB.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 03/08/2004 at 03:17, xxxxxxxx wrote:

(Well, the scene mail bounced because of a full mailbox. It was just a modified atom object, with a cube inside, moving about with VMB turned on.)

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 03/08/2004 at 06:57, xxxxxxxx wrote:

I will work on it.

Thanks!

Regards,
darf

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 03/08/2004 at 15:05, xxxxxxxx wrote:

Ok, let me know how it goes. I also noted that it was instructive to remove the SetUniqueIP() line and the OBJECT_UNIQUEENUMERATION flag, just to see that the VMB didn't work without them (it detects erroneous diagonal movement when objects are removed).