Awesome, thanks, Ran
On Thu, Mar 14, 2013 at 4:40 AM, Stephan Woermann < [email protected]> wrote: > Hm, i use the GeometryAccessor for my plugin and it works for every frame. > It also gives you triangulated values back, if needed. > > PolygonMesh mesh( whatever ); > CGeometryAccessor ga = mesh.GetGeometryAccessor( > siConstructionModeSecondaryShape, siCatmullClark, subd.GetParameterValue( > L"gapproxmordrsl" ), false, true, subd.GetParameterValue( L"gapproxmoan", > time ) ); > > // Vertex positions > CDoubleArray vPosition; > ga.GetVertexPositions( vPosition ); > LONG vertCount = vPosition.GetCount(); > > // Normal values > CFloatArray vNormal; > ga.GetNodeNormals(vNormal); > LONG normCount = vNormal.GetCount(); > > // First UV map > CRefArray uvProps = ga.GetUVs(); > ClusterProperty cp( uvProps[0] ); > CFloatArray valueArray; > CBitArray flags; > cp.GetValues( valueArray, flags ); > LONG uvCount = valueArray.GetCount(); > > Stephan > > > > > 2013/3/14 Raffaele Fragapane <[email protected]> > >> Not 100% sure what you're using or trying to use. >> In 2012 or 2013 they introduced GetGeometry3() specifically for python, >> that with the time in frames argument worked ok for me. >> >> In CPP GetGeometry with a time argument also works fine in my (dated) >> experience, but the time option is only available runOnce, operators can't >> look up times other than current, so if you're doing this inside an op, >> then the time parameter won't work. >> >> You can also explicitly pass it what construction mode to look up, if >> defaulted it will use the current mode (so make sure you're not defaulting >> it and in modelling mode or something). >> >> >> On Thu, Mar 14, 2013 at 4:05 PM, ran sariel <[email protected]> wrote: >> >>> Hi >>> >>> I'm trying to get values on geometry at a certain frame. >>> when using python - as long as I roll the playControl to that frame and >>> call "refresh" (ugly I know) >>> data= mesh.GetSurfacePointLocatorsFromPoints() >>> vertices=mesh.evaluatePositions(data) >>> >>> I get the correct data. >>> >>> on C++ no matter what I do, the geometry is not reflecting the >>> deformations, >>> >>> searching through the docs, - it suggests GetGeometry(currentTime); >>> (defaulting to current) >>> so: >>> " >>> std::vector<double>posData; >>> PolygonMesh >>> mesh=node.GetActivePrimitive(currentFrame).GetGeometry(currentFrame);" >>> PointLocatorData data = mesh.GetSurfacePointLocatorsFromPoints(); >>> posData.resize(data.GetCount()*3); >>> mesh.EvaluatePositions(data,-1,0,&posData.front()); >>> >>> """ >>> >>> any ideas??? >>> >>> cheers >>> Ran >>> >>> >>> >>> >> >> >> -- >> Our users will know fear and cower before our software! Ship it! Ship it >> and let them flee like the dogs they are! >> > >

