mirror of
				https://bitbucket.org/mfeemster/fractorium.git
				synced 2025-11-03 17:50:27 -05:00 
			
		
		
		
	--User changes
-No longer constrain pitch, yaw or depth spinners to -180 - 180. --Bug fixes -Properly set color index on padded xforms. -Adding a padding final xform included a linear variation with a weight of zero to not appear empty. Made it have a weight of 1. -Always write animate tag on final xform when saving to Xml. -Motion was being applied to the wrong flame in SheepTools::Edge(), so apply it to the correct one. -Prevent divide by zero when normalizing variation weights. -Was accidentally adding the placeholder value of -9999 for motion_offset to varation weights and parameters when applying motion. Set to zero if no value present. -Clamp flame rotation values to -180 - 180 when reading a flame from Xml. -Events were not properly wired for user changes in the random rotations per blend controls in the sequencer. -Fix major UI bugs with sequencer min/max random controls which made it nearly impossible to hand type values. -Values from rotations per blend and rotations per blend max were not being saved to file between program runs. -Checking animate for an xform was not applied to all flames even if Apply All was checked. -Changing interpolation type, temporal filter width, temporal type, and affine interpolation type were not actually saving to the flame when changed. -Grid on the main window was not being drawn at the right scale initially due to some OpenGL initialization occurring in the wrong order. -Severe bugs in sequence generation code: --Improperly detected padding xforms. --When looking for specific variations during xform aligning, only presence was detected, when it should have been presence plus a weight greater than zero. --When adding specific variations during xform aligning, must first remove any variations of that type. --Two variables were unsigned when they should have been signed. This prevented large blocks of code from ever executing. --When interpolating affines, an EPS that was too small was used, causing affine values to interpolate incorrectly. Instead use 1e-10 to ensure results equal to flam3. --Code changes -Modify FractoriumEmberController::UpdateXform() to pass the selected xform index as well as the absolute index to func().
This commit is contained in:
		@ -177,29 +177,35 @@ void FractoriumSettings::LoadLast(bool b)                        { setValue(LOAD
 | 
			
		||||
/// Sequence generation settings.
 | 
			
		||||
/// </summary>
 | 
			
		||||
 | 
			
		||||
double FractoriumSettings::Stagger()             { return value(STAGGER).toDouble();       }
 | 
			
		||||
void FractoriumSettings::Stagger(double d)       { setValue(STAGGER, d);                   }
 | 
			
		||||
double FractoriumSettings::Stagger()                  { return value(STAGGER).toDouble();            }
 | 
			
		||||
void FractoriumSettings::Stagger(double d)            { setValue(STAGGER, d);                        }
 | 
			
		||||
 | 
			
		||||
double FractoriumSettings::StaggerMax()          { return value(STAGGERMAX).toDouble();    }
 | 
			
		||||
void FractoriumSettings::StaggerMax(double d)    { setValue(STAGGERMAX, d);                }
 | 
			
		||||
double FractoriumSettings::StaggerMax()               { return value(STAGGERMAX).toDouble();         }
 | 
			
		||||
void FractoriumSettings::StaggerMax(double d)         { setValue(STAGGERMAX, d);                     }
 | 
			
		||||
 | 
			
		||||
uint FractoriumSettings::FramesPerRot()          { return value(FRAMESPERROT).toUInt();    }
 | 
			
		||||
void FractoriumSettings::FramesPerRot(uint i)    { setValue(FRAMESPERROT, i);              }
 | 
			
		||||
uint FractoriumSettings::FramesPerRot()               { return value(FRAMESPERROT).toUInt();         }
 | 
			
		||||
void FractoriumSettings::FramesPerRot(uint i)         { setValue(FRAMESPERROT, i);                   }
 | 
			
		||||
 | 
			
		||||
uint FractoriumSettings::FramesPerRotMax()       { return value(FRAMESPERROTMAX).toUInt(); }
 | 
			
		||||
void FractoriumSettings::FramesPerRotMax(uint i) { setValue(FRAMESPERROTMAX, i);           }
 | 
			
		||||
uint FractoriumSettings::FramesPerRotMax()            { return value(FRAMESPERROTMAX).toUInt();      }
 | 
			
		||||
void FractoriumSettings::FramesPerRotMax(uint i)      { setValue(FRAMESPERROTMAX, i);                }
 | 
			
		||||
 | 
			
		||||
uint FractoriumSettings::Rotations()             { return value(ROTATIONS).toDouble();     }
 | 
			
		||||
void FractoriumSettings::Rotations(double d)     { setValue(ROTATIONS, d);                 }
 | 
			
		||||
uint FractoriumSettings::Rotations()                  { return value(ROTATIONS).toDouble();          }
 | 
			
		||||
void FractoriumSettings::Rotations(double d)          { setValue(ROTATIONS, d);                      }
 | 
			
		||||
 | 
			
		||||
uint FractoriumSettings::RotationsMax()          { return value(ROTATIONSMAX).toDouble();  }
 | 
			
		||||
void FractoriumSettings::RotationsMax(double d)  { setValue(ROTATIONSMAX, d);              }
 | 
			
		||||
uint FractoriumSettings::RotationsMax()               { return value(ROTATIONSMAX).toDouble();       }
 | 
			
		||||
void FractoriumSettings::RotationsMax(double d)       { setValue(ROTATIONSMAX, d);                   }
 | 
			
		||||
 | 
			
		||||
uint FractoriumSettings::BlendFrames()           { return value(BLENDFRAMES).toUInt();     }
 | 
			
		||||
void FractoriumSettings::BlendFrames(uint i)     { setValue(BLENDFRAMES, i);               }
 | 
			
		||||
uint FractoriumSettings::BlendFrames()                { return value(BLENDFRAMES).toUInt();          }
 | 
			
		||||
void FractoriumSettings::BlendFrames(uint i)          { setValue(BLENDFRAMES, i);                    }
 | 
			
		||||
 | 
			
		||||
uint FractoriumSettings::BlendFramesMax()        { return value(BLENDFRAMESMAX).toUInt();  }
 | 
			
		||||
void FractoriumSettings::BlendFramesMax(uint i)  { setValue(BLENDFRAMESMAX, i);            }
 | 
			
		||||
uint FractoriumSettings::BlendFramesMax()             { return value(BLENDFRAMESMAX).toUInt();       }
 | 
			
		||||
void FractoriumSettings::BlendFramesMax(uint i)       { setValue(BLENDFRAMESMAX, i);                 }
 | 
			
		||||
 | 
			
		||||
uint FractoriumSettings::RotationsPerBlend()          { return value(ROTATIONSPERBLEND).toUInt();    }
 | 
			
		||||
void FractoriumSettings::RotationsPerBlend(uint i)    { setValue(ROTATIONSPERBLEND, i);              }
 | 
			
		||||
 | 
			
		||||
uint FractoriumSettings::RotationsPerBlendMax()       { return value(ROTATIONSPERBLENDMAX).toUInt(); }
 | 
			
		||||
void FractoriumSettings::RotationsPerBlendMax(uint i) { setValue(ROTATIONSPERBLENDMAX, i);           }
 | 
			
		||||
 | 
			
		||||
/// <summary>
 | 
			
		||||
/// Variations filter settings.
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user