//---------------------------------------------------------------------------- //----SKYXEDITORFACTORY----------------------------------------------------- //---------------------------------------------------------------------------- CSkyxEditorFactory::CSkyxEditorFactory(OgitorsView *view) : CBaseEditorFactory(view) { mTypeName = "Skyx"; mEditorType = ETYPE_SKY_MANAGER; mAddToObjectList = true; mIcon = "caelum.svg"; mCapabilities = CAN_DELETE; mUsesGizmos = false; mUsesHelper = false; OgitorsPropertyDef* definition = 0; definition = AddPropertyDefinition("options::currenttime", "Options::Current Time", "", PROP_REAL); definition->setRange(Ogre::Any(0.0f), Ogre::Any(24.0f), Ogre::Any(0.25f)); definition->setTrackChanges(false); definition = AddPropertyDefinition("options::time", "Options::Day Time", "", PROP_VECTOR2); definition->setFieldNames("Sun Rise", "Sun Set"); definition->setRange(Ogre::Any(Ogre::Vector2(0, 0)), Ogre::Any(Ogre::Vector2(24, 24)), Ogre::Any(Ogre::Vector2(0.25f, 0.25f))); definition = AddPropertyDefinition("options::timemultiplier", "Options::Time Mult.", "", PROP_REAL); definition->setRange(Ogre::Any(-1000.0f), Ogre::Any(1000.0f), Ogre::Any(0.25f)); definition = AddPropertyDefinition("options::miemultiplier", "Options::Mie Mult.", "", PROP_REAL); definition->setRange(Ogre::Any(0.0f), Ogre::Any(1.0f), Ogre::Any(0.00025f)); definition = AddPropertyDefinition("options::rayleighmultiplier", "Options::Rayleigh Mult.", "", PROP_REAL); definition->setRange(Ogre::Any(0.0f), Ogre::Any(1.0f), Ogre::Any(0.00025f)); definition = AddPropertyDefinition("options::innerradius", "Options::Inner Radius", "", PROP_REAL); definition->setRange(Ogre::Any(0.0f), Ogre::Any(1e9f), Ogre::Any(0.5f)); definition = AddPropertyDefinition("options::outerradius", "Options::Outer Radius", "", PROP_REAL); definition->setRange(Ogre::Any(0.0f), Ogre::Any(1e9f), Ogre::Any(0.5f)); definition = AddPropertyDefinition("options::samplecount", "Options::Sample Count", "", PROP_INT); definition = AddPropertyDefinition("options::height", "Options::Height", "", PROP_REAL); definition->setStepSize(Ogre::Any(0.05f)); definition =AddPropertyDefinition("options::exposure", "Options::Exposure", "", PROP_REAL); definition->setRange(Ogre::Any(0.0f), Ogre::Any(15.0f), Ogre::Any(0.25f)); definition = AddPropertyDefinition("options::eastposition", "Options::East Position", "", PROP_VECTOR2); definition = AddPropertyDefinition("options::sunintensity", "Options::Sun Intensity", "", PROP_REAL); definition = AddPropertyDefinition("options::wavelength", "Options::Wave Length", "", PROP_COLOUR); definition = AddPropertyDefinition("options::g", "Options::Phase Function", "", PROP_REAL); definition->setRange(Ogre::Any(-1.0f), Ogre::Any(0.0f), Ogre::Any(0.00025f)); definition = AddPropertyDefinition("options::moonphase", "Moon::Moon Phase", "", PROP_REAL); definition->setRange(Ogre::Any(-1.0f), Ogre::Any(1.0f), Ogre::Any(0.02f)); // SkyX Moon parameters definition = AddPropertyDefinition("options::moonsize", "Moon::Moon Size", "", PROP_REAL); definition->setRange(Ogre::Any(0.0f), Ogre::Any(1.0f), Ogre::Any(0.05f)); definition = AddPropertyDefinition("options::moonhalointensity", "Moon::Halo Intesity", "", PROP_REAL); definition->setRange(Ogre::Any(0.0f), Ogre::Any(5.0f), Ogre::Any(0.1f)); definition = AddPropertyDefinition("options::moonhalostrength", "Moon::Halo Strength", "", PROP_REAL); definition->setRange(Ogre::Any(0.1f), Ogre::Any(3.0f), Ogre::Any(0.01f)); // SkyX Volumetric Clouds AddPropertyDefinition("vclouds::enable", "Volumetric Clouds::Enable", "", PROP_BOOL); AddPropertyDefinition("vclouds::autoupdate", "Volumetric Clouds::Auto Update", "", PROP_BOOL); definition = AddPropertyDefinition("vclouds::cloudscale", "Volumetric Clouds::Cloud Scale", "", PROP_REAL); definition->setRange(Ogre::Any(0.1f), Ogre::Any(10.0f), Ogre::Any(0.1f)); definition = AddPropertyDefinition("vclouds::noisescale", "Volumetric Clouds::Noise Scale", "", PROP_REAL); definition->setRange(Ogre::Any(0.0f), Ogre::Any(20.0f), Ogre::Any(0.25f)); definition = AddPropertyDefinition("vclouds::windspeed", "Volumetric Clouds::Wind Speed", "", PROP_INT); definition->setRange(Ogre::Any(0), Ogre::Any(10000), Ogre::Any(25)); definition = AddPropertyDefinition("vclouds::winddirection", "Volumetric Clouds::Wind Direction", "", PROP_INT); definition->setRange(Ogre::Any(0), Ogre::Any(360), Ogre::Any(10)); definition = AddPropertyDefinition("vclouds::ambientcolor", "Volumetric Clouds::Ambient Color", "", PROP_COLOUR); definition = AddPropertyDefinition("vclouds::lightresponse", "Volumetric Clouds::Light Response", "", PROP_VECTOR4); definition->setFieldNames("Sun light power", "Sun beta multiplier", "Ambient color multiplier", "Distance attenuation"); definition->setRange(Ogre::Any(Ogre::Vector4(0.0f)), Ogre::Any(Ogre::Vector4(5.0f)), Ogre::Any(Ogre::Vector4(0.02f))); definition = AddPropertyDefinition("vclouds::ambientfactors", "Volumetric Clouds::Ambient Factors", "", PROP_VECTOR4); definition->setFieldNames("Constant", "Linear", "Quadratic", "Cubic"); definition->setRange(Ogre::Any(Ogre::Vector4(0.0f)), Ogre::Any(Ogre::Vector4(5.0f)), Ogre::Any(Ogre::Vector4(0.02f))); definition = AddPropertyDefinition("vclouds::weather", "Volumetric Clouds::Weather", "", PROP_VECTOR2); definition->setFieldNames("Humidity", "Average Cloud Size"); definition->setRange(Ogre::Any(Ogre::Vector2(0, 0)), Ogre::Any(Ogre::Vector2(1, 1)), Ogre::Any(Ogre::Vector2(0.1, 0.1))); // SkyX Volumetric Clouds Lightning definition = AddPropertyDefinition("vclightning::enable", "Lightning::Enable", "", PROP_BOOL); definition = AddPropertyDefinition("vclightning::at", "Lightning::Avg. Aparition Time", "Average time between lightnings (in seconds)", PROP_REAL); definition->setRange(Ogre::Any(0.0f), Ogre::Any(120.0f), Ogre::Any(0.25f)); definition = AddPropertyDefinition("vclightning::color", "Lightning::Color", "", PROP_COLOUR); definition = AddPropertyDefinition("vclightning::tm", "Lightning::Lightning Time Multiplier", "", PROP_REAL); definition->setRange(Ogre::Any(0.1f), Ogre::Any(5.0f), Ogre::Any(0.1f)); OgitorsPropertyDefMap::iterator it = mPropertyDefs.find("name"); it->second.setAccess(true, false); it = mPropertyDefs.find("layer"); it->second.setAccess(false, false); }