Re: OM scripting

Date : Thu, 13 Apr 2006 20:08:54 -0700
To : XSI(at)Softimage.COM
From : Steven Caron <scaron(at)omation.com>
Subject : Re: OM scripting
Skowronski?

Bernard Lebel wrote:
Andrew who?


On 4/13/06, brad <brad(at)cg-soup.com> wrote:
Interesting... it looks to me like the XSICollection is changing the object type as a result of dumping it into the collection:

SelectObj("cube", null, true);
obj = Selection(0);

// Get a pointer to the object Facets
oFacets = obj.ActivePrimitive.Geometry.Facets;

LogMessage(oFacets(0))
LogMessage(oFacets(1).type)

// Dump the objects into an XSICollection
XSIColl = new ActiveXObject('XSI.Collection')
XSIColl.AddItems(oFacets)
LogMessage(XSIColl(0))
LogMessage(XSIColl(1).type)


This looks like a job for Andrew! -Brad

 -------Original Message-------
 Stephen,
 Thanks, this worked perfecly for my oFilter.Subset input, however I am
 now more confused than ever. I have two pieces of code that are supposed
 to select all the edges of a particular facet, one works, one doesnt,
 they are:


//1.DOES NOT WORK SelectObj("cube", null, true); var oColl = XSIFactory.CreateActiveXObject("XSI.Collection") oColl.AddItems(Selection(0).ActivePrimitive.Geometry.Facets); SelectGeometryComponents(oColl(0).Edges);

 //2.WORKS
 SelectObj("cube", null, true);
 var oSelList = Selection(0).ActivePrimitive.Geometry.Facets;
 SelectGeometryComponents(oSelList(1).Edges);



 If Selection(0).ActivePrimitive.Geometry.Facets is a facet collection,
 how does it differ from an XSI Collection? In this case it would seem
 that the XSI Collection is being passed to SelectGeometryComponents in
 example 1 and a Facet Collection is being sent to
 SelectGeometryComponents in example 2. Why would the XSI Collection work
 in the case of filter.subset but not here?


--

 Joey Ponthieux
 NCI Information Systems Inc.
 NASA Langley Research Center
 ____________________________________________________________
 Opinions stated here-in are strictly those of the author and
 do not represent the opinions of NASA or any other party.



 Stephen Blair wrote:
 >
 > Hi Joey
 >
 > Instead of messing about with the selection, just get all the edges into
 > a collection and then filter the collection.
 >
 > Here's an example, but with polygons and the Quad filter:
 >
 > var oCone = ActiveSceneRoot.AddGeometry("Cone","MeshSurface");
 > var oPolygons = oCone.ActivePrimitive.Geometry.Polygons;
 >
 > var oColl = XSIFactory.CreateActiveXObject("XSI.Collection");
 > oColl.AddItems(oPolygons);
 > LogMessage( oColl.Count );
 >
 > var oFilter = Application.Filters("Quad");
 > var oQuads = oFilter.Subset( oColl );
 > LogMessage( oQuads.Count );
 >
 > Also
 >
 > Application.Selection is a Selection object
 > Selection(0).ActivePrimitive.Geometry.Segments is a SegmentCollection
 >
 > that's why you get the error
 >
 ---
 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


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



-- Steven Caron doer of things somewhat technical scaron(at)omation.com 949-366-4422 x601


--- 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.