示例#1
0
ICurvePtr CurveEditor::createCurve(CurveTypes::CurveType curveType, bool add)
{
	auto definitionManager = Context::queryInterface<IDefinitionManager>();
	if(definitionManager)
	{
		// This method of creating a curve requires a default constructor
		//auto curveDef = definitionManager->getDefinition<ICurve>();
		//if(curveDef)
		//{
		//	auto curve = TypeClassDefinition<Curve>::create(*curveDef, definitionManager);
		//	curves_.emplace_back(curve);
		//	return curve.get();
		//}

		// Create a curve and pass it by reference to our exposed model for variants
		ICurvePtr pCurve = std::make_shared<Curve>(createInterpolator(curveType), definitionManager);

		if( add )
		{
			storage_.emplace_back(pCurve);
			curves_.emplace_back(storage_.back().get());
		}

		return pCurve;
	}
	return nullptr;
}
示例#2
0
ICurvePtr CurveEditor::createCurve(CurveTypes::CurveType curveType)
{
	return ManagedObject<Curve>::make_unique(createInterpolator(curveType));
}