RE: [CPP] How can I determine if a model is a instance

Date : Wed, 30 Nov 2005 12:41:15 -0000
To : <XSI(at)Softimage.COM>
From : "kim aldis" <kim(at)cg-soup.com>
Subject : RE: [CPP] How can I determine if a model is a instance
Yeah, sorry. I was a bit vague. 

> -----Original Message-----
> From: owner-xsi(at)Softimage.COM 
> [mailto:owner-xsi(at)Softimage.COM] On Behalf Of Guy Rabiller
> Sent: 30-November-2005 11:37
> To: XSI(at)Softimage.COM
> Subject: Re: [CPP] How can I determine if a model is a instance
> 
> 
> Hi Steve,
> 
> either the GetMaster command or if you need the ObjectModel 
> approach, try this heuristic:
> ( I think this might be the GetMaster approach ):
> 
> -> To Check if a Model is an Instance:
> ( and to find its Master )
> 1) Check if one of the Model.GetOwners() is of ClassID siGroupID.
> 2) Check if the Group.GetParameters().GetCount() is 1 or 5.
> If it is 1 it is either an "InstanceGroup" of a Master Model 
> or an "Associated Models" of a Light.
> From here, to distinguish the two of them, either check the 
> name of the Group ( wich is rarely changed by the user ), or 
> just to be sure, check if the Owner of the Group - there must 
> be only 1 - is of Class siModelID.
> ( then you've found your master - or source - model )
> 
> -> To Check if a Model is a Master
> 1) Check if one of its Groups - if any - has Parameters Count 
> equal to 1.
> If yes, then it has been instanciated and is/was a Master.
> ( you cant remove a Model InstanceGroup )
> 
> Tell me if that works for you.
> 
> Regarding Clones, freeze works here in v5, without the need 
> to save/open.
> --
> guy rabiller | 3d technical director (at) LaMaison
> 
> 
> Steve Yin wrote:
> 
> > no, there is no such a property.
> >
> >     ----- Original Message -----
> >     *From:* kim aldis <mailto:kim(at)cg-soup.com>
> >     *To:* XSI(at)Softimage.COM <mailto:XSI(at)Softimage.COM>
> >     *Sent:* Wednesday, November 30, 2005 5:28 PM
> >     *Subject:* RE: [CPP] How can I determine if a model is 
> a instance
> >
> >     check to see if the model has a master property.
> >
> >         
> --------------------------------------------------------------
> ----------
> >         *From:* owner-xsi(at)Softimage.COM
> >         <mailto:owner-xsi(at)Softimage.COM>
> >         [mailto:owner-xsi(at)Softimage.COM] *On Behalf Of *Steve Yin
> >         *Sent:* 30-November-2005 08:48
> >         *To:* XSI(at)Softimage.COM <mailto:XSI(at)Softimage.COM>
> >         *Subject:* [CPP] How can I determine if a model is 
> a instance
> >
> >         Hi people:
> >             I have a c++ problem, I'm trying to write a plugin for
> >         xsi, Now I need to determine if a model is a 
> instance, and if
> >         it is, get the source model of instance.
> >            
> >             I know cloned object have a opterator called copyop, but
> >         seems instanced model do not have this operator.
> >          
> >             BTW, How can I change a cloned object to normal 
> object? in
> >         XSI4.2 I just freeze the cloned object, save and 
> open, then it
> >         will change to normal object. in XSI 5 this 
> method(maybe a xsi
> >         bug) does not working.
> >          
> >          
> >             Thanks :)
> >
> 
> ---
> Unsubscribe? Mail Majordomo(at)Softimage.COM with the following 
> text in body:
> unsubscribe xsi
> 

---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body:
unsubscribe xsi


Search the XSI List archives here or use the advanced search form to search across mailing lists. Searching help is available.
This site supposedly brought to you by Benjamin Grosser and the Imaging Technology Group.