Hi Piotrek,

Thanks a lot for your reply, but this is exactly what I'm trying to avoid -
I'm actually re-writing a script that does something very similar, as it is
damn slow. Matt Lind mentioned in a previous thread that it is possible to
go from sample > vert (are you around Matt ;)), but I'm really struggling
to ifnd the 'magic' to make this happen.

Cheers,

Jules

On Wed, Sep 12, 2012 at 9:28 PM, piotrek marczak
<[email protected]>wrote:

>   i think you need to go bruteforce...
> pretty slow code but i dont know python
>
> from win32com.client import constants as c
> app = Application
> oGeo =
> app.Selection(0).SubComponent.Parent3DObject.ActivePrimitive.GetGeometry3(0,c.siConstructionModeSecondaryShape)
> # arguments needed otherwise crash
> indarray = [0] * oGeo.Samples.Count
> for point in oGeo.Points:
>     for ptsample in point.Samples:
>         indarray[ ptsample.Index ] = point.Index
> cmparray = [0] * oGeo.Points.Count
> outIndexArray = []
> for sample in app.Selection(0).SubComponent.ElementArray:
>     if not cmparray[ indarray[ sample ] ]:
>         outIndexArray.append( indarray[ sample ] )
>         cmparray[ indarray[ sample ] ] = 1
>
> for i in outIndexArray:
>     Application.LogMessage ( i )
>
>  *From:* Jules Stevenson <[email protected]>
> *Sent:* Wednesday, September 12, 2012 7:58 PM
> *To:* [email protected]
> *Subject:* Re: Python, Returning the vertex index from a sample cluster
>
> Apologies, hit send a little early there....
>
>  for sample in samples.SubComponent.ComponentCollection:
> log(uvs.FindIndices([sample.Index]))
>                 log (sample.Index)
>                 log(elements.FindIndex(sample.Index)
>
> The 'elements' clusterElementCollection seems to contain the indices to
> the samples, not the mapping to the geometry, which goes against what is
> syas in the docs:
>
> "The ClusterElementCollection returned by 
> Cluster.Elements<http://download.autodesk.com/global/docs/softimage2013/en_us/sdkguide/si_om/Cluster.Elements.html>(and
> Envelope.Elements<http://download.autodesk.com/global/docs/softimage2013/en_us/sdkguide/si_om/Envelope.Elements.html>)
> provides the mapping between an index of a component in a cluster with the
> index of the component on the 
> Geometry<http://download.autodesk.com/global/docs/softimage2013/en_us/sdkguide/si_om/Geometry.html>.
> For example index 10 on a polygon Cluster might refer to Polygon 45 on the
> geometry, in which case ClusterElementCollection.Item(10) has the value 45.
> This data is read-only."
>
> This is not what I get at all, for a start the cluster.Elements.Count
> returns approximatly 80k, which makes no sense as a geometry index since
> there are only about 20k points. Clearly this is an array of the sample
> indices (4 per vert). Soooooooo, how do I get the point / facet / polygon
> ID from a sample?
>
> Any help much appreciated, this is driving me nuts.
>
> Cheers,
>
> Jules
>

Reply via email to