|
|||||||||
PREV NEXT | FRAMES NO FRAMES |
See:
Description
ULB Files | |
---|---|
ck | |
common | Common Classes for Ultra Fractal 5 |
dmj5 | dmj5.ulb 1.0 Base Classes for Ultra Fractal 5 by Damien M. |
jlb | |
kcc5 | kcc5.ulb 1.0 Classes for Ultra Fractal 5 by Ken Childress 24 June 2008 |
mmf | Classes by David Makin for Ultrafractal 5 and later. This version 10th December 2008. Minor improvements to exponential smoothing in Field Estimator. Added the Switch Magnet 2 formula. 6th December 2008. Added the Switch Magnet 1 formula. Added the "fix" to the Magnet 1 Distance Estimator. 29th November 2008 Fixed the default version in Field Estimator. |
mt | Classes for Ultra Fractal 5 by Mark Townsend |
reb | by Ron Barnett July 3, 2008 Ron's Website |
rkb | rkb.ulb - Classes written by Robert K. |
Standard | Standard.ulb implements the transformations, formulas and coloring algorithms from Standard.uxf/ufm/ucl as objects for the common.ulb framework. |
tma |
This document provides class hierarchy information and documentation for Ultra Fractal 5 for those class files publicly available.
Ultra Fractal Class Library Documentation 28 October 2008 |
---|
This overview page also describes some important information for understanding this documentation and for documenting your class files for inclusion in this documentation.
Important Links |
---|
Object Tutorials |
---|
Introduction to Objects - Users Version
The second one is intended for those interested in writing formulas using the object features of Ultra Fractal 5. It is a brief, detailed introduction to objects and the object features contained in Ultra Fractal 5.
Introduction to Objects -
Programmers Version
Ultra Fractal 5 Tutorials & Challenges |
---|
Ron has also designed a series of challenges to help users apply the techniques described in the tutorials.
Additional tutorials and examples can be found
here.
Ultra Fractal Class Libraries |
---|
Ultra Fractal 5 is delivered with a set of base classes that are designed to be used as building blocks for other formulas. These are located in the common.ulb class file. The formulas in the Standard.ufm and Standard.ucl files have been rewritten using classes. These can be found in Standard.ulb.
Several formula authors have written classes and re-written formulas to use classes. These can be found in the files,
Class File Usage |
---|
Documentation Notes |
---|
Since the documentation is generated with a tool designed to document Java code, there will be a few cases where the UF syntax doesn't exactly show in the documentation. A primary example is parameters that are passed by reference. In the UF code, these parameters are prefaced by the '&' character. There is no corresponding Java syntax, thus the function documentation when this is used will not be properly reflected. One should inspect the UF code listing in the class documentation for the correct parameter passing mode.
There may also be a few minor "Javaisms". These would be syntax or conventions
that are appropriate for Java, but perhaps not for the UF formula language.
As many of these as possible have been removed, or changed to be more UF-like.
Class File Mapping |
---|
ULB File | Class File | Author |
common | common.ulb | Common base classes |
dmj5 | dmj5.ulb | Classes written by Damien M. Jones |
jlb | jlb.ulb | Classes written by Jim Blue |
kcc5 | kcc5.ulb | Classes written by Ken Childress |
mmf | mmf.ulb | Classes written by Dave Makin |
mt | mt.ulb | Classes written by Mark Townsend |
reb | reb.ulb | Classes written by Ron Barnett |
tma | tma.ulb | Classes written by Toby Marshall |
Class Naming Conventions |
---|
The primary exception to this rule are the classes contained in common.ulb.
By convention, there is no prefix on these class names as they are intended to
be extended by user created classes.
TrapShape = Trap Shape class located in common.ulb
DMJ_Clipping = Clipping class located in dmj5.ulb
KCC_TangentBallsTrap = Tangent Balls Trap class located in kcc5.ulb
Class File Documentation Conventions |
---|
comment {
kcc5.ulb 1.0 <br>
Classes for Ultra Fractal 5 <br>
by Ken Childress <br>
24 June 2008 <br>
<p>
This is my collection of classes. This collection
consists of class versions of the Carlson Orbit Traps
types, Plane Curve Trap types, and the coloring maps
included in those formulas. The older versions of the
formulas work perfectly fine in UF5. These classes
were written to allow the trap types to work in the new
UF 5 class hierarchy. This provides much more flexibility
than could be obtained by the previous versions.
<p>
The classes contained here are class implementations
of the following coloring formulas from kcc3.ucl.
<ul>
<li><strong>Carlson Orbit Traps<</strong> - These are
the 3D coloring shapes originally created by Paul
Carson.
<li><strong>Plane Curve Traps</strong> - These are the
traps shapes contained in the Plane Curve Traps UCL found
in kcc3.ucl.
<li><strong>Color Map Classes</strong> - These are the
color maps implemented as classes to provide the same
3D colorings as Paul Carlson's original formulas.
</ul>
}
The first sentence of the comment should be a brief description of the
class file. This short description will appear in the summary of class
files that appears on the main index page of the documentation.
HTML tags may be used to format this description block as desired when
the documentation is generated.
class DMJ_PolyCurveSelector(common.ulb:Generic) {
; PolyCurve Selector abstract base class.
; <p>
; When writing a formula which uses PolyCurve objects, it is
; usually necessary to allow the user to select the actual
; curve shape (unless it is going to be synthetically created).
; In that case, you can include a DMJ_PolyCurveSelector object
; and allow the user to choose any of the available curve
; selection mechanisms. You may also want to allow them to use
; DMJ_PolyCurveTransform objects, but that is up to you.
public:
; set parameters for a segment
; note: do not manually specify a close point; use the
; auto-close flag instead. Otherwise, your shape may not
; render correctly (it will "leak").
; @param ppoint slot number (use -1 for next slot)
; @param ptype segment type:
; 0 = none (close),
; 1 = linear,
; 2 = quadratic (use pcontrol1),
; 3 = cubic (use pcontrol1 and 2)
; @param pauto auto-compute controls:
; 1 = close,
; 2 = smooth,
; 4 = curvature smooth
; @param panchor anchor point
; @param pcontrol1 control point 1
; @param pcontrol2 control point 2
func SetSegment(int ppoint, int ptype, int pauto, complex panchor, complex pcontrol1, complex pcontrol2)
if (ppoint == -1)
ppoint = m_AnchorNext
m_AnchorNext = m_AnchorNext + 1
endif
if (ppoint > m_AnchorHighest)
m_AnchorHighest = ppoint
endif
print("segment ", ppoint, ": type ", ptype, " auto ", pauto, " ", panchor, " ", pcontrol1, " ", pcontrol2)
m_Anchors[ppoint] = panchor
m_Control1[ppoint] = pcontrol1
m_Control2[ppoint] = pcontrol2
m_Types[ppoint] = ptype
m_Auto[ppoint] = pauto
endfunc
@param
tag. The format of
this tag is
@param parameter_name parameter_description
parameter_name should simply be the name of the parameter without any additional
characters or punctuation. For example, just write "@param ppoint [description]"
rather than "@param ppoint," or "@param ppoint:", or "@param ppoint=", etc.
@return
tag after any
@param
tags.
@return description_of_the_return_value
|
|||||||||
PREV NEXT | FRAMES NO FRAMES |