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

Reply via email to