Could you use the Plugin's UserData to pass the struct between plugin
types?  I never heard of using the context from one plugin type being used
in another plugin type.

http://bit.ly/1NILLt7

On Thu, Dec 10, 2015 at 9:01 AM, Andruha Prostrelov <[email protected]>
wrote:

> I am looking for the way to pass a "struct" from Tool Class to the
> CustomOperator_Update() callback.
> I saw two approaches to this in SDK. First one should work via UserData
> attached to ctxt. You store in this
> data C++ pointer to allocated memory with your struct. Second one is to
> create Property and store this pointer in
> property. I prefer do not create additional Property, so i tried to add
> UserData to ctxt.
> But i don't quite sure that i make it right.
> I tried this piece of code ...
>
>     struct myStruct{
>            XSI::CLongArray polyData;
>            XSI::CValueArray edgeSegmentsArray;
>     }
>     SICALLBACK myCmd_Execute( CRef& in_ctxt ){
>           PlugData pData;
>           PlugData * pDataPtr;
>           pDataPtr = &pData;
>           ctxt.PutUserData(XSI::CValue(pDataPtr));
>     }
>     SICALLBACK myOperator_Update( CRef& in_ctxt ){
>            OperatorContext ctxt( in_ctxt );
>            CValue userData(ctxt.GetUserData());
>            update_func(ctxt);
>            return CStatus::OK;
>     }
>
> ... but in Update callback i didn't get pointer back.
>
> If someone has already faced a similar problem maybe you can share some
> advices.
> Or maybe there is a way to pass struct without UserData or Custom Property.
>

Reply via email to