Esempio n. 1
0
void eTfEffectDistortionProcess(eTfEffect *fx, eTfSynth &synth, eTfInstrument &instr, eF32 **signal, eU32 len)
{
    eASSERT_ALIGNED16(fx);
    eTfEffectDistortion *dist = static_cast<eTfEffectDistortion *>(fx);

    eF32 amount = 1.0f - instr.params[TF_DISTORT_AMOUNT];
    if (amount != dist->generatedAmount)
    {
        dist->generatedAmount = amount;
        for (eU32 base = 0; base<32768; base++)
            dist->powTable[base] = ePow(base/32768.f, amount);
    }

    for(eU32 i=0;i<2;i++)
    {
        eF32 *in = signal[i];
        eU32 len2 = len;

        while(len2--)
        {
            eF32 val = *in;
            eF32 sign = eSign(val);
            eF32 abs  = eAbs(val);
            if (abs > 1.0f) abs = 1.0f;
            eU32 offs = eFtoL(abs * 32767.0f);
            *in++ = sign * dist->powTable[offs];
        }
    }
}
Esempio n. 2
0
eRoad::eRoad(pugi::xml_node& node) {
	//GlobalID
	this->GlobalID = node.child("GlobalID").text().as_int();
	//LateralOffsetBegin
	this->LateralOffsetBegin =
			node.child("LateralOffsetBegin").text().as_double();
	//LateralOffsetEnd
	this->LateralOffsetEnd = node.child("LateralOffsetEnd").text().as_double();
	//Length
	this->Length = node.child("Length").text().as_double();
	//NextConnectedRoadID
	this->NextConnectedRoadID =
			node.child("NextConnectedRoadID").text().as_int();
	//NextConnectedSwitchID
	this->NextConnectedSwitchID =
			node.child("NextConnectedSwitchID").text().as_int();
	//PrevConnectedRoadID
	this->PrevConnectedRoadID =
			node.child("PrevConnectedRoadID").text().as_int();
	//PrevConnectedSwitchID
	this->PrevConnectedSwitchID =
			node.child("PrevConnectedSwitchID").text().as_int();
	//BeginCoordinate
	this->BeginCoordinate = node.child("BeginCoordinate").text().as_double();
	//EndCoordinate
	this->EndCoordinate = node.child("EndCoordinate").text().as_double();
	//HasCatenaryLine
	this->HasCatenaryLine = node.child("HasCatenaryLine").text().as_bool();
	//CatenaryVoltage
	this->CatenaryVoltage = node.child("CatenaryVoltage").text().as_double();
	//IsMainLine
	this->IsMainLine = node.child("IsMainLine").text().as_bool();
	//Balast
	this->Balast = node.child("Balast").text().as_string();
	//Travers
	this->Travers = node.child("Travers").text().as_string();

	//VerticalProfile
	for (pugi::xml_node VerticalProfileNode = node.child("VerticalProfile");
			VerticalProfileNode;
			VerticalProfileNode = VerticalProfileNode.next_sibling(
					"VerticalProfile")) {
		eVerticalProfile everticalprofile = eVerticalProfile(
				VerticalProfileNode);
		this->VerticalProfile.push_back(everticalprofile);
	}

	//Section
	for (pugi::xml_node SectionNode = node.child("Section"); SectionNode;
			SectionNode = SectionNode.next_sibling("Section")) {
		eSection esection = eSection(SectionNode);
		this->Section.push_back(esection);
	}

	//Sign
	for (pugi::xml_node SignNode = node.child("Sign"); SignNode; SignNode =
			SignNode.next_sibling("Sign")) {
		eSign esign = eSign(SignNode);
		this->Sign.push_back(esign);
	}

	//Signal
	for (pugi::xml_node SignalNode = node.child("Signal"); SignalNode;
			SignalNode = SignalNode.next_sibling("Signal")) {
		eSignal esignal = eSignal(SignalNode);
		this->Signal.push_back(esignal);
	}

	//Magnet
	for (pugi::xml_node MagnetNode = node.child("Magnet"); MagnetNode;
			MagnetNode = MagnetNode.next_sibling("Magnet")) {
		eMagnet emagnet = eMagnet(MagnetNode);
		this->Magnet.push_back(emagnet);
	}

	//Balise
	for (pugi::xml_node BaliseNode = node.child("Balise"); BaliseNode;
			BaliseNode = BaliseNode.next_sibling("Balise")) {
		eBalise ebalise = eBalise(BaliseNode);
		this->Balise.push_back(ebalise);
	}

	//Block
	for (pugi::xml_node BlockNode = node.child("Block"); BlockNode; BlockNode =
			BlockNode.next_sibling("Block")) {
		eBlock eblock = eBlock(BlockNode);
		this->Block.push_back(eblock);
	}

	//LevelCrossing
	for (pugi::xml_node LevelCrossingNode = node.child("LevelCrossing");
			LevelCrossingNode;
			LevelCrossingNode = LevelCrossingNode.next_sibling(
					"LevelCrossing")) {
		eLevelCrossing elevelcrossing = eLevelCrossing(LevelCrossingNode);
		this->LevelCrossing.push_back(elevelcrossing);
	}

	//PhysicalBuilding
	for (pugi::xml_node PhysicalBuildingNode = node.child("PhysicalBuilding");
			PhysicalBuildingNode;
			PhysicalBuildingNode = PhysicalBuildingNode.next_sibling(
					"PhysicalBuilding")) {
		ePhysicalBuilding ephysicalbuilding = ePhysicalBuilding(
				PhysicalBuildingNode);
		this->PhysicalBuilding.push_back(ephysicalbuilding);
	}

}