[SESI logo]

Houdini Development Toolkit - Version 6.5

Side Effects Software Inc. 2004

Houdini

Tools for Customization

There are several programs used with the development toolkit. This document describes each of them.
  • hcustom
  • hcbrowse
  • hviewfile
  • hviewclass
  • proto_install

  • hcustom [-g] [-s] [-i install_path] source.C [source2.C]

  • -g Compile with debugging.
  • -s Compile a stand alone tool (as opposed to a DSO)
  • -i path Install the DSO in the path specified (defaults to $HOME/houdini/dso).
  • -l lib Add a library for linking the .so file
  • -L path Add the path specified to the library search path
  • -I path Add the path specified to the include file search path
  • This program is actually a shell script which will compile your source. The correct compiler flags for you. It is possible to specify multiple .C files on the same command line. Each .C file will be made into a DSO or stand alone tool.

    The DSO's will be automatically "tagged" with some information which can be viewed the the program sesitag. To change the tag information, you can set the environment variable SESI_TAGINFO to contain a tag of information which you'd like to see displayed. For example:

    % setenv SESI_TAGINFO " : (c) 1996 - Cool Graphics Inc." % hcustom *.C % sesitag custom.so custom.so Version: 1.1a Compiled on: Thu Nov 7 05:15:57 1996 by: fred : (c) 1996 - Cool Graphics Inc. When creating a DSO file, every Houdini application will pick up the extension if it's installed in the correct place. For example, if you create a custom material shader, this DSO will be picked up not only by Houdini, but also by Mantra3 and any other tool which uses materials.

    Stand alone applications are programs which are linked with the Houdini libraries. Unlike DSO's they must have a "main()" function defined. These applications can easily read in the Houdini database and make modifications. They will automatically pick up any extensions which have been installed as well. The examples contain two simple programs. One which mimics the Houdini hscript application, and the other which illustrates traversal of the node hierarchy.


    hcbrowse

    The header files for the toolkit are stored in a database for quick access. However, for development, the programmer will often need to see the methods available for a specific class. The hcbrowse program is the Houdini Class Browser. This is a program which has a graphical user interface to browse classes. On the left hand side is a list of all the classes. On the right hand side is the header file containing the selected class. You can cut and paste between the text display and your favorite editor.


    hviewfile filename

    This is a non-graphical application which will extract the named file from the header file archive and display the contents on stdout.


    hviewclass filename

    This is a non-graphical application which will extract the named class from the header file archive and display the contents on stdout.


    proto_install

    This program can be used to package a DSO for export to foreign sites. The program reads a configuration file and creates an archive file which can be extracted at the foreign site by using the proto_install command.

    The configuration file must be called MANIFEST and contains a list of files which should be installed. The structure of the file is:

    command filename target_path install_mode command2 filename2 target_path2 install_mode2 ... Where the command is a single character (r, c, or xr), should be copied (c) or should be executed as a shell script (x).

    The filename should specify a file found in the directory where the program is being run.

    The target_path should specify the location within the standard houdini path where the file should be located. For example, to specify an icon file, the target_path should be specified as "config/Icons/". The filename specification should not be included in the path specification. For README files, this field is ignored.

    If the command specifies that the file should be executed, the filename given will be extracted to $HOUDINI_TEMP_DIR and the program will be started by running csh. Though the file is extracted into a temporary directory, the current directory will be the target_path specified in the third field.

    The install_mode specifies the permissions for the file after extraction.

    Example 1:

    r README x 0666 c SOP_CustomSop.so dso/ 0555 c customsop config/Help/sop/ 0444 c SOP_customsop.icon config/Icons/ 0444 This MANIFEST file would create an archive with four files in its contents. If the user chose the $HOME/houdini directory for installation, then the customsop help file would be installed as $HOME/config/Help/sop/customsop.

    Example 2:
    r README x 0666 c CMD_CustomCommand.so dso/ 0555 x installHelp.sh help/ 0777 This MANIFEST file would create an archive with three files. The only file installed would be the CMD_CustomCommand.so file which would be installed in the dso sub-directory.
    The file installHelp.sh would be run, with the current directory set to the help/ sub-directory. The helpInstall.sh file might look something like:
    #!/bin/csh -f set help = "command.help" if ( -r $help ) then # The file exists, so search for our command set exist = `grep ^command_name $help` else set exist = "" endif if ( "$exist" == "" ) then echo Installing help echo command_name >> $help echo " This command does something..." >> $help endif
    Table of Contents
    Operators | Surface Operations | Particle Operations | Composite Operators | Channel Operators
    Material & Texture | Objects | Command and Expression | Render Output |
    Mantra Shaders | Utility Classes | Geometry Library | Image Library | Clip Library
    Customizing UI | Questions & Answers

    Copyright © 2004 Side Effects Software Inc.
    477 Richmond Street West, Toronto, Ontario, Canada M5V 3E7