|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
Objectcommon:Generic
common:TrapMode
common:TrapModeWithThreshold
mmf:MMF_TrapModeSmoothWithThreshold
mmf:MMF_TrapModeSmoothSecondClosest
class
Returns the differences between the closest and second closest trapped
iterations.
class MMF_TrapModeSmoothSecondClosest(MMF_TrapModeSmoothWithThreshold) {
; Returns the differences between the closest and second closest trapped
; iterations.<br>
public:
import "common.ulb"
func MMF_TrapModeSmoothSecondClosest(Generic pparent)
MMF_TrapModeSmoothWithThreshold.MMF_TrapModeSmoothWithThreshold(pparent)
endfunc
func Init(complex pz)
m_Iterations = 0
m_Solid = true
int j = 3
repeat
m_UntransformedPoints[j] = m_OldUntransformedPoints[j] = (0,0)
m_TransformedPoints[j] = m_OldTransformedPoints[j] = (0,0)
m_IterationPoints[j] = m_OldIterationPoints[j] = 0
m_Distances[j] = m_OldDistances[j] = 1e20
m_Textures[j] = m_OldTextures[j] = 0.0
until (j=j-1)<0
m_wastrapped = false
endfunc
func Iterate(complex pz, complex pzt, float pdistance, float ptexture)
if m_wastrapped
m_OldDistances[0] = m_Distances[0]
m_OldTextures[0] = m_Textures[0]
m_OldUntransformedPoints[0] = m_UntransformedPoints[0]
m_OldTransformedPoints[0] = m_TransformedPoints[0]
m_OldIterationPoints[0] = m_IterationPoints[0]
m_OldDistances[1] = m_Distances[1]
m_OldTextures[1] = m_Textures[1]
m_OldUntransformedPoints[1] = m_UntransformedPoints[1]
m_OldTransformedPoints[1] = m_TransformedPoints[1]
m_OldIterationPoints[1] = m_IterationPoints[1]
endif
m_Iterations = m_Iterations + 1
if (pdistance < m_Threshold)
m_Solid = false
endif
if pdistance < m_Distances[0]
m_Distances[1] = m_Distances[0]
m_Textures[1] = m_Textures[0]
m_UntransformedPoints[1] = m_UntransformedPoints[0]
m_TransformedPoints[1] = m_TransformedPoints[0]
m_IterationPoints[1] = m_IterationPoints[0]
m_Distances[0] = pdistance
m_Textures[0] = ptexture
m_UntransformedPoints[0] = pz
m_TransformedPoints[0] = pzt
m_IterationPoints[0] = m_Iterations
m_wastrapped = true
elseif pdistance<m_Distances[1]
m_Distances[1] = pdistance
m_Textures[1] = ptexture
m_UntransformedPoints[1] = pz
m_TransformedPoints[1] = pzt
m_IterationPoints[1] = m_Iterations
m_wastrapped = true
endif
endfunc
func IterateSilent()
if m_wastrapped
m_OldDistances[0] = m_Distances[0]
m_OldTextures[0] = m_Textures[0]
m_OldUntransformedPoints[0] = m_UntransformedPoints[0]
m_OldTransformedPoints[0] = m_TransformedPoints[0]
m_OldIterationPoints[0] = m_IterationPoints[0]
m_OldDistances[1] = m_Distances[1]
m_OldTextures[1] = m_Textures[1]
m_OldUntransformedPoints[1] = m_UntransformedPoints[1]
m_OldTransformedPoints[1] = m_TransformedPoints[1]
m_OldIterationPoints[1] = m_IterationPoints[1]
m_wastrapped = false
endif
m_Iterations = m_Iterations + 1
endfunc
func Result()
m_Distances[0] = abs(m_Distances[0] - m_Distances[1])
m_Textures[0] = m_Textures[0] - m_Textures[1]
m_UntransformedPoints[0] = m_UntransformedPoints[0] \
- m_UntransformedPoints[1]
m_TransformedPoints[0] = m_TransformedPoints[0] \
- m_TransformedPoints[1]
m_IterationPoints[0] = abs(m_IterationPoints[0] \
- m_IterationPoints[1])
endfunc
func OldResult()
if m_OldIterationPoints[1]>0
m_Distances[0] = abs(m_OldDistances[0] - m_OldDistances[1])
m_Textures[0] = m_OldTextures[0] - m_OldTextures[1]
m_UntransformedPoints[0] = m_OldUntransformedPoints[0] \
- m_OldUntransformedPoints[1]
m_TransformedPoints[0] = m_OldTransformedPoints[0] \
- m_OldTransformedPoints[1]
m_IterationPoints[0] = abs(m_OldIterationPoints[0] \
- m_OldIterationPoints[1])
m_Iterations = m_Iterations - 1
endif
endfunc
default:
title = "Smooth Second Closest"
rating = recommended
}
| Constructor Summary | |
|---|---|
MMF_TrapModeSmoothSecondClosest()
|
|
MMF_TrapModeSmoothSecondClosest(Generic pparent)
|
|
| Method Summary | |
|---|---|
void |
Init(complex pz)
call this at the beginning of each sequence |
void |
Iterate(complex pz,
complex pzt,
float pdistance,
float ptexture)
call this for each point |
void |
IterateSilent()
call this for each point that is ignored (for smooth orbit traps) if the last point was trapped then copy the current values into the "old" ones |
void |
OldResult()
call this to compute penultimate results |
void |
Result()
call this to compute final results |
| Methods inherited from class common:TrapModeWithThreshold |
|---|
GetThreshold, SetThreshold, UsesThreshold |
| Methods inherited from class common:TrapMode |
|---|
GetDistance, GetIteration, GetTexture, GetTransformedPoint, GetUntransformedPoint, IsSolid |
| Methods inherited from class common:Generic |
|---|
GetParent |
| Methods inherited from class Object |
|---|
|
| Constructor Detail |
|---|
public MMF_TrapModeSmoothSecondClosest(Generic pparent)
public MMF_TrapModeSmoothSecondClosest()
| Method Detail |
|---|
public void Init(complex pz)
MMF_TrapModeSmoothWithThreshold
Init in class MMF_TrapModeSmoothWithThresholdpz - the initial z value
public void Iterate(complex pz,
complex pzt,
float pdistance,
float ptexture)
MMF_TrapModeSmoothWithThresholdNote that derived functions should always copy all used parameters to the "old" versions when they are changed as here.
m_wastrapped should be set to true in the derived
function when the main (current) values get changed
Iterate in class MMF_TrapModeSmoothWithThresholdpz - the z valuepzt - the transformed z valuepdistance - the trap distanceptexture - tyhe texture valuepublic void IterateSilent()
MMF_TrapModeSmoothWithThreshold
IterateSilent in class MMF_TrapModeSmoothWithThresholdpublic void Result()
TrapMode
Result in class TrapModepublic void OldResult()
MMF_TrapModeSmoothWithThreshold
This should only be called after previously calling Result()
and getting the actual result value using the Trap Color Mode
since the original result values are destroyed by this call.
OldResult in class MMF_TrapModeSmoothWithThreshold
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||