<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: C++ Utility plugin in 3ds Max Programming Forum</title>
    <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177104#M6039</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1794911"&gt;@klvnk&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;P&gt;&lt;SPAN&gt;I don't want to add additional FP functions, as I already have access to all my utility plugin properties from MXS&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;which is it ?&lt;/SPAN&gt;&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;For simplification, let's stay at MXS only. If I enter:&lt;/P&gt;&lt;P&gt;showClass "myplug.*"&lt;/P&gt;&lt;P&gt;in MXS, I 'see' at least all the utility plugin properties, but I have no idea on how to get write-access to them.&lt;/P&gt;&lt;P&gt;With simple object based plugins with paramblocks you create an instance of it (a node) and have direct access to the parameters. But how's that working for a static util plugin?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 22 Mar 2021 19:24:44 GMT</pubDate>
    <dc:creator>istan</dc:creator>
    <dc:date>2021-03-22T19:24:44Z</dc:date>
    <item>
      <title>C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/9917656#M6032</link>
      <description>&lt;P&gt;I have a utility plugin with ClassDesc2 and ParamBlk2 and several rollouts in the GUI. I see all paramblk properties from MXS via:&amp;nbsp; showClass "myplug.*"&lt;/P&gt;&lt;P&gt;But how can I get access to these utitlity parameters from MXS or C++ ?&lt;/P&gt;</description>
      <pubDate>Sat, 05 Dec 2020 15:03:39 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/9917656#M6032</guid>
      <dc:creator>istan</dc:creator>
      <dc:date>2020-12-05T15:03:39Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10174253#M6033</link>
      <description>&lt;P&gt;There is a couple of steps you need to follow.&lt;BR /&gt;First, you need to access the base class you want to access for example object/material/maps&lt;/P&gt;&lt;P&gt;Then, you need to get the param block from the base class&lt;/P&gt;&lt;P&gt;And at last, you can access the final parameters you want one by one.&lt;/P&gt;&lt;P&gt;For example, if you want to access the material/map parameters and return it as a string you need to do it like this:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;std::string MaxToLuxMaps::getFloatByID(::Mtl* mat, ::Texmap* tex, int refno)
{
	float value = 0.0f;
	std::string stringValue = "";
	IParamBlock2 *pBlock = NULL;

	if (mat != NULL)
		pBlock = mat-&amp;gt;GetParamBlock(0);
	else
		pBlock = tex-&amp;gt;GetParamBlock(0);

	if (pBlock != NULL)
	{
		value = pBlock-&amp;gt;GetFloat(refno, GetCOREInterface()-&amp;gt;GetTime());
		stringValue = lmaputil-&amp;gt;floatToString(value);
	}
	return stringValue;
}&lt;/LI-CODE&gt;</description>
      <pubDate>Sun, 21 Mar 2021 17:32:39 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10174253#M6033</guid>
      <dc:creator>omidt_gh</dc:creator>
      <dc:date>2021-03-21T17:32:39Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10174521#M6034</link>
      <description>&lt;P&gt;you expose utilities (or any other plugin) to mxs or the sdk via function publishing....&amp;nbsp; lots of examples in the sdk (it's literally brimming with them). If you just want to expose to other plugins and not mxs you do so via the interface system (from which function publishing is derived).&lt;/P&gt;</description>
      <pubDate>Sun, 21 Mar 2021 20:31:16 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10174521#M6034</guid>
      <dc:creator>klvnk</dc:creator>
      <dc:date>2021-03-21T20:31:16Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10175595#M6035</link>
      <description>&lt;P&gt;for a gup plugin it could be condensed to the following.....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;// IMyInterface.h

#include "iFnPub.h"

#define MY_INTERFACE_ID		Interface_ID(0x4bc35422, 0x70000ea7)

class IMyInterface : public FPStaticInterface
{
public:

	enum functionID { kthefunction, knumfunctions };

	virtual float theFunction(float x) = 0;

};

inline IMyInterface* GetMyInterface() { return static_cast&amp;lt;IMyInterface*&amp;gt;(GetCOREInterface(MY_INTERFACE_ID));

// myutil.cpp

#include "IMyInterface.h"

// create the interface class

class MyUtilFPInterface: public IMyInterface
{
public:
	DECLARE_DESCRIPTOR(MyUtilFPInterface);

	BEGIN_FUNCTION_MAP
		FN_1(kthefunction, TYPE_FLOAT, theFunction)
	END_FUNCTION_MAP

	float theFunction() { return sin(x); }
	
};

// create the global instance of our interface 

static MyUtilFPInterface MyUtilFP(MY_INTERFACE_ID, _T("myutils"),
	IDS_UTIL_CLASS_NAME, NULL, FP_CORE,

	IMyInterface::kthefunction, _T("theFunction"), -1, TYPE_FLOAT, FP_NO_REDRAW, 1,
	_T("x"), 0, TYPE_FLOAT,
	p_end);

// then any other .cpp file its....

#include "IMyInterface.h"

IMyInterface* util = GetMyInterface();
float y = util-&amp;gt;theFunction(x);

// and any mxs file

local y = myutils.theFunction(x);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;you can hook into the original gup plugin by creating a static instance of it eg.....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;static MyUtil gmyutil;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the call from that in the interface&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;class MyUtilFPInterface: public IMyInterface
{
public:
	DECLARE_DESCRIPTOR(MyUtilFPInterface);

	BEGIN_FUNCTION_MAP
		FN_1(kthefunction, TYPE_FLOAT, theFunction)
	END_FUNCTION_MAP

	float theFunction() { return gmyutil.sin(x); }
	
};&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Mar 2021 10:42:05 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10175595#M6035</guid>
      <dc:creator>klvnk</dc:creator>
      <dc:date>2021-03-22T10:42:05Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10175861#M6036</link>
      <description>&lt;P&gt;Thanks, but it did not answer my original question.&lt;/P&gt;&lt;P&gt;I don't want to add additional FP functions, as I already see all my utility plugin properties from MXS. They have been declared with paramblks and are already connected to dialog controls, so why should I add an extra interface again?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Mar 2021 12:37:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10175861#M6036</guid>
      <dc:creator>istan</dc:creator>
      <dc:date>2021-03-22T12:37:15Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10175877#M6037</link>
      <description>&lt;P&gt;original question....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;But how can I get access to these utitlity parameters from MXS or C++ ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;your response.....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I don't want to add additional FP functions, as I already have access to all my utility plugin properties from MXS&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;which is it ?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Mar 2021 12:42:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10175877#M6037</guid>
      <dc:creator>klvnk</dc:creator>
      <dc:date>2021-03-22T12:42:48Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10176006#M6038</link>
      <description>&lt;P&gt;I answer the question pretty clear you get value from param block with the call:&lt;/P&gt;&lt;LI-CODE lang="general"&gt;value = pBlock-&amp;gt;GetFloat(refno, GetCOREInterface()-&amp;gt;GetTime());&lt;/LI-CODE&gt;&lt;P&gt;this line will retrieve the float value from the Param block. not adding anything to it.&lt;/P&gt;&lt;P&gt;(you should know the reference number)&lt;BR /&gt;check my original answer, did you even check the answer?&lt;/P&gt;</description>
      <pubDate>Mon, 22 Mar 2021 13:27:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10176006#M6038</guid>
      <dc:creator>omidt_gh</dc:creator>
      <dc:date>2021-03-22T13:27:55Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177104#M6039</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1794911"&gt;@klvnk&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;P&gt;&lt;SPAN&gt;I don't want to add additional FP functions, as I already have access to all my utility plugin properties from MXS&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;which is it ?&lt;/SPAN&gt;&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;For simplification, let's stay at MXS only. If I enter:&lt;/P&gt;&lt;P&gt;showClass "myplug.*"&lt;/P&gt;&lt;P&gt;in MXS, I 'see' at least all the utility plugin properties, but I have no idea on how to get write-access to them.&lt;/P&gt;&lt;P&gt;With simple object based plugins with paramblocks you create an instance of it (a node) and have direct access to the parameters. But how's that working for a static util plugin?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Mar 2021 19:24:44 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177104#M6039</guid>
      <dc:creator>istan</dc:creator>
      <dc:date>2021-03-22T19:24:44Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177123#M6040</link>
      <description>&lt;P&gt;Get to get parameters Set to set a parameters.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;SimpleObject2::SetReference()&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;SimpleObject2::GetReference()&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Mar 2021 19:33:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177123#M6040</guid>
      <dc:creator>omidt_gh</dc:creator>
      <dc:date>2021-03-22T19:33:21Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177128#M6041</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/450754"&gt;@omidt_gh&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;P&gt;check my original answer, did you even check the answer?&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Yes - I read. But I do neither have a "Mtl" nor a "Texmap":&lt;/P&gt;&lt;PRE&gt;std::string MaxToLuxMaps::getFloatByID(::Mtl* mat, ::Texmap* tex, int refno)&lt;/PRE&gt;&lt;P&gt;I have a utility plugin with paramblks which resides somewhere in the memory of 3dsmax.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Mar 2021 19:33:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177128#M6041</guid>
      <dc:creator>istan</dc:creator>
      <dc:date>2021-03-22T19:33:29Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177141#M6042</link>
      <description>&lt;LI-CODE lang="general"&gt;SimpleObject2::SetReference()&lt;/LI-CODE&gt;&lt;LI-CODE lang="general"&gt;SimpleObject2::GetReference()&lt;/LI-CODE&gt;</description>
      <pubDate>Mon, 22 Mar 2021 19:34:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177141#M6042</guid>
      <dc:creator>omidt_gh</dc:creator>
      <dc:date>2021-03-22T19:34:59Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177150#M6043</link>
      <description>&lt;P&gt;Check these two classes and you will get your answer. do you have ever write c++ plugin.&lt;BR /&gt;I highly recommended looking at the basic training you will get all of your answers in 30 minutes.&lt;/P&gt;</description>
      <pubDate>Mon, 22 Mar 2021 19:37:03 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177150#M6043</guid>
      <dc:creator>omidt_gh</dc:creator>
      <dc:date>2021-03-22T19:37:03Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177154#M6044</link>
      <description>&lt;P&gt;it doesn't matter you want object/material/PF/map all of these are pointers to a object and you need exact same steps to get or set a parameters.&lt;/P&gt;</description>
      <pubDate>Mon, 22 Mar 2021 19:38:40 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177154#M6044</guid>
      <dc:creator>omidt_gh</dc:creator>
      <dc:date>2021-03-22T19:38:40Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177174#M6045</link>
      <description>&lt;P&gt;Try this one it will take just 30 minutes and you will learn how to set and get parameters and work with UI and viewport.&lt;BR /&gt;Also, you will find the source code available for every step.&lt;/P&gt;&lt;P&gt;&lt;A href="https://help.autodesk.com/view/MAXDEV/2021/ENU/?guid=__developer_3ds_max_sdk___the_learning_path_html" target="_self"&gt;https://help.autodesk.com/view/MAXDEV/2021/ENU/?guid=__developer_3ds_max_sdk___the_learning_path_html&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2021-03-22 204341.jpg" style="width: 400px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/896725iAC772B640AD97325/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2021-03-22 204341.jpg" alt="Screenshot 2021-03-22 204341.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Mar 2021 19:46:00 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177174#M6045</guid>
      <dc:creator>omidt_gh</dc:creator>
      <dc:date>2021-03-22T19:46:00Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177224#M6046</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/450754"&gt;@omidt_gh&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;P&gt;it doesn't matter you want object/material/PF/map all of these are pointers to a object and you need exact same steps to get or set a parameters.&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Yes, I know. But how do I get the pointer to this volatile "utility object", which only exists when the panel was opened?&lt;/P&gt;</description>
      <pubDate>Mon, 22 Mar 2021 20:02:26 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177224#M6046</guid>
      <dc:creator>istan</dc:creator>
      <dc:date>2021-03-22T20:02:26Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177369#M6047</link>
      <description>&lt;P&gt;please check the basic tutorial. that's the very first line of the code.&lt;/P&gt;&lt;P&gt;First, you need the node&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;INode* node&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That's what you should use and then see this node is a point to what object/Material, etc ....&lt;BR /&gt;Now you can get the object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;ObjectState os = node-&amp;gt;EvalWorldState(t);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;now use the object as a pointer and reach the other part.&lt;/P&gt;&lt;P&gt;And if you do not know how to access a node in the scene first you should access all objects like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;INode* currNode = maxscene-&amp;gt;GetChildNode(a);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;a is an Integer and means the n'th object in the current scene.&lt;/P&gt;&lt;P&gt;and if you ask how to access the current scene you need to do it with:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;INode* maxscene = GetCOREInterface7()-&amp;gt;GetRootNode();&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;if you ask for selected object it will be always "&amp;amp;" in MXS as a pointer to current object.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can just spend 30 minutes and check the very first basic tutorial you will understand all of them.&lt;BR /&gt;That's what you need to do, without that it is almost impossible to continue.&lt;/P&gt;&lt;P&gt;Take my advice and just spend 30 minutes of your time on it.&lt;/P&gt;</description>
      <pubDate>Mon, 22 Mar 2021 20:52:53 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177369#M6047</guid>
      <dc:creator>omidt_gh</dc:creator>
      <dc:date>2021-03-22T20:52:53Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177613#M6048</link>
      <description>&lt;P&gt;does your UtilityObj inherit from any other classes ? such as ReferenceMaker ? It might help if you posted the class code (just the outline should do)&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Mar 2021 22:35:09 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10177613#M6048</guid>
      <dc:creator>klvnk</dc:creator>
      <dc:date>2021-03-22T22:35:09Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10180822#M6049</link>
      <description>&lt;P&gt;I took lesson5 and added a paramblk.&lt;/P&gt;&lt;P&gt;My own property sheet is missing from the vcxproj - so the max paths are missing there.&lt;/P&gt;&lt;P&gt;Build, start max with empty scene and enter 'showclass "lesson*.*" in maxscript listener.&lt;/P&gt;&lt;P&gt;It shows the paramblk properties, but how to access them now from MXS?&lt;/P&gt;</description>
      <pubDate>Tue, 23 Mar 2021 21:35:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10180822#M6049</guid>
      <dc:creator>istan</dc:creator>
      <dc:date>2021-03-23T21:35:55Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10180906#M6050</link>
      <description>&lt;P&gt;From C++ it's like this :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;inf pbRefNo = 1;
Node-&amp;gt;pblock-&amp;gt;GetInt(pbRefNo ,0);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For MXS it will be like this :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;int numrefs = refObj-&amp;gt;NumRefs();
int paramblockRefNumber = 1;
for(int i=0; i &amp;lt; numrefs;i++)
{
 ReferenceTarget* ref = refObj-&amp;gt;GetReference(i);
 if(ref-&amp;gt;ClassID() == Class_ID(0x3bc31904, 0x67d74ec9))
 {
 Object* obj = dynamic_cast&amp;lt;Object*&amp;gt;(ref);
 if(obj)
 { 
 int value = obj-&amp;gt;pblock-&amp;gt;GetInt(paramblockRefNumber ,0);
 }
 }
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;you will need to change the refrence number for every single parameters you need to access, also be careful with GetInt/GetFloat/etc.&lt;/P&gt;</description>
      <pubDate>Tue, 23 Mar 2021 22:18:14 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10180906#M6050</guid>
      <dc:creator>omidt_gh</dc:creator>
      <dc:date>2021-03-23T22:18:14Z</dc:date>
    </item>
    <item>
      <title>Re: C++ Utility plugin</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10180913#M6051</link>
      <description>&lt;P&gt;n you can the maxscript listener shows the parameters that variable you see is exactly you need.&lt;/P&gt;&lt;P&gt;just take a look at the code.&lt;/P&gt;</description>
      <pubDate>Tue, 23 Mar 2021 22:17:08 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/c-utility-plugin/m-p/10180913#M6051</guid>
      <dc:creator>omidt_gh</dc:creator>
      <dc:date>2021-03-23T22:17:08Z</dc:date>
    </item>
  </channel>
</rss>

