Re: [cgkit-user] RiCurves grow.py
Brought to you by:
mbaas
From: Matthias B. <mat...@gm...> - 2007-05-11 23:18:39
|
sick wrote: > I write simple curve_proc.py with calls in cycle RiCurves primitive and > RiConcatTransfom(F). Its work, but i read this in renderman API: > "Multiple disconnected individual curves may be specified using one call > to RiCurves. The parameter ncurves is the number of individual curves > specified by this command". > The syntax RiCurves( RtToken type, RtInt ncurves, RtInt nvertices[], > RtToken wrap, parameterlist ); > After execute grow.py i get: Curves "cubic" [6] "nonperiodic" "P" [0 0 > -0.12783 0 0 0 0 0 0.12783 0 0 0.191745 0 0.067311 0.255661 0 0.134622 > 0.319576] "constantwidth" [0.005]. > If I'm try to specified ncurves parameter before nvertices[] like in > syntax, grow.py is not work. And error is: In Python you don't have to specify the "ncurves" argument. Note that the above syntax of RiCurves is the syntax for the C version of the API. In C, RiCurves cannot know the length of the nvertices argument, so the length has to be passed in as well. But in Python the length of nvertices can easily be obtained, so it is not necessary to explicitly pass in that information. So to create several curves at once, just add more values to nvertices and to the points list. By the way, you can get the Python syntax for each RenderMan command using Python's help function: >>> from cgkit.ri import * >>> help(RiCurves) Help on function RiCurves in module cgkit.ri: RiCurves(type, nvertices, wrap, *paramlist, **keyparams) Create a number of curve primitives. type is either RI_LINEAR or RI_CUBIC. nvertices is an array with the number of vertices in each curve. wrap is either RI_PERIODIC or RI_NONPERIODIC. The width of the curves can be specified with the parameter RI_WIDTH (varying float) or RI_CONSTANTWIDTH (constant float). Number of array elements for primitive variables: ------------------------------------------------- constant: 1 varying: #segments (depends on type and wrap) uniform: #curves vertex: #points Example: RiCurves(RI_CUBIC, [4], RI_NONPERIODIC, P=[0,0,0, -1,-0.5,1, 2,0.5,1, 1,0,-1], width=[0.1, 0.04]) - Matthias - |