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 09: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 06: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 06: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 08: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 06: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 01: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 04: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 04: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 03:52 AM.

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