|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Object common: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_TrapModeSmoothWithThreshold
pz
- the initial z valuepublic void Iterate(complex pz, complex pzt, float pdistance, float ptexture)
MMF_TrapModeSmoothWithThreshold
Note 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_TrapModeSmoothWithThreshold
pz
- the z valuepzt
- the transformed z valuepdistance
- the trap distanceptexture
- tyhe texture valuepublic void IterateSilent()
MMF_TrapModeSmoothWithThreshold
IterateSilent
in class MMF_TrapModeSmoothWithThreshold
public void Result()
TrapMode
Result
in class TrapMode
public 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 |