WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Plug-in development (https://forum.worldviz.com/forumdisplay.php?f=8)
-   -   How do I add custom functions to a custom plugin? (https://forum.worldviz.com/showthread.php?t=1787)

reedev 01-24-2009 08:13 AM

How do I add custom functions to a custom plugin?
 
Hi,

I am working on CustomNode plugin. I have my custom node up and running fine.

Now I would like to add my own functions to the plugin. Can anyone show me how that's done? It's not in the CustomNode example.

Thanks a lot.

Best regards
Raymond

farshizzo 01-26-2009 05:46 PM

Here is a small example that uses the skydome plugin to show how to customize a plugin object. Usually you create your own Python module that specifies your class. In this example, create a file called SkyDome.py and add the following code to it:
Code:

import viz

class SkyDomeClass(viz.VizCustomChild):
       
        def myfunc(self):
                self.command(1)
               
viz.upgradeCustomNode('skydome.dlc',SkyDomeClass)

def addSkyDome():
        return viz.add('skydome.dlc')

The following code shows how to use your new module:
Code:

import viz
viz.go()

dome = addSkyDome()
dome.myfunc()


reedev 01-27-2009 05:27 AM

Hi,

Aha, ok, it's starting to make sense...
This command is then calling the C++ class func
void CommandCustomNode(void *custom) ? (from the CustomNode example)

Is there not a direct way of calling the CommandCustomNode() func? Isn't it exposed via the python module?

thanks
Raymond

reedev 01-27-2009 07:07 AM

Also, I would like to specify arguments when the plugin is loaded, so that I can specify these arguments to my constructor.

thanks,
Raymond

farshizzo 01-27-2009 05:37 PM

When you create the custom node object, you can optionally specify additional arguments:
Code:

mynode = viz.add('mynode.dlc',command,mesg,x,y,z,w)
You can also send additional commands to the node once it is created:
Code:

mynode.command(command,mesg,x,y,z,w)
The command, mesg, x, y, z, w values are part of the VizCustomNodeObj structure that is passed to your C++ function.

reedev 01-28-2009 12:16 AM

Hi,
So this way I don't need to create a python class, right?
I like the last way better.

Thanks a lot
Raymond

farshizzo 01-28-2009 03:31 PM

You don't have to create a Python class for you custom nodes. Wrapping your custom commands with proper functions usually makes the code easier to read, and this is the main reason to do it. It's 100% optional though.

reedev 02-01-2009 03:39 AM

It's all clear to me right. And working :-)

Thanks a lot for your support.
Best regards
Raymond


All times are GMT -7. The time now is 12:29 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC