Esempio n. 1
0
void CIVCfgMgr::SetDataShowState(int nChannelID, int nState)
{
    GetChannelName(nChannelID, szBuf);
    TiXmlElement* pChannelEle = TinyXmlUtil::CreateChildEle(
        m_pRootEle, szBuf );
    pChannelEle->SetAttribute(_DataShowState, nState);
}
Esempio n. 2
0
IIVCfgMgr::IVVistor CIVCfgMgr::Begin( int nChannelID )
{
    assert(m_pRootEle);
    GetChannelName(nChannelID, szBuf);
    return IVVistor( 
        TinyXmlUtil::GetChildChildEle(
        m_pRootEle, 2, szBuf, _Rule) );
}
Esempio n. 3
0
void CIVCfgMgr::GetDataShowState(int nChannelID,int& nState)
{
    GetChannelName(nChannelID, szBuf);
    TiXmlElement* pChannelEle = TinyXmlUtil::CreateChildEle(
        m_pRootEle, szBuf );
    TinyXmlUtil::GetAttributeData(
        pChannelEle, _DataShowState, nState, IV_Show_All);
}
Esempio n. 4
0
bool CIVCfgMgr::Remove( 
    int nChannelID,
    const IVVistor& Vistor )
{
    assert(m_pRootEle);
    TiXmlElement* pEle = Ele(Vistor);
    if ( pEle == NULL )
    {
        return false;
    }

    GetChannelName(nChannelID, szBuf);
    TiXmlElement* pChannelEle = TinyXmlUtil::CreateChildEle(
        m_pRootEle, szBuf );
    return pChannelEle->RemoveChild(pEle);
}
Esempio n. 5
0
IIVCfgMgr::IVVistor CIVCfgMgr::Add(
    int nChannelID,
    const WPG_Rule& Rule,
    const ScheduleSettings& Sch,
    const AlarmOutSettings& Alarm )
{
    GetChannelName(nChannelID, szBuf);
    TiXmlElement* pChannelEle = TinyXmlUtil::CreateChildEle(
        m_pRootEle, szBuf );

    TiXmlElement* pRuleEle = new TiXmlElement(_Rule);
    if ( !_AddRule(pRuleEle, Rule) )
    {
        delete pRuleEle;
        return End();
    }
    
    _AddSchedule(pRuleEle, Sch);
    //TinyXmlUtil::SetChildBinaryTextData(pRuleEle, _Schudule, Sch);
    TinyXmlUtil::SetChildBinaryTextData(pRuleEle, _AlarmOut, Alarm);
    pChannelEle->LinkEndChild(pRuleEle);
    return IVVistor(pRuleEle);
}
Esempio n. 6
0
/**************************************************************************
   Description   : Erstellen der Log Datei der letzten ermittelten Werte
                   von ausgewählten WR in eine Datei um 0:00
   Parameter     : (none)
   Return-Value  : (none)
   Changes       : Author, 		Date, 		Version, 	Reason
                   ********************************************************
                   Dotterweich,	03.09.2007, 0.1, 		Created
**************************************************************************/
void LogMonatDatei(char *Pfad, char *OutputDatei, int Format)
{
    int     i = 0;
    int     j = 0;
    int     k = 0;
	int		Zaehler = 1;
	char	DatumBuffer[DATUMMAX] = {0};
	char	ZeitpunktBuffer[ZEITPUNKTMAX] = {0};
    char	DateiBuffer[DATEINAMEPFADMAX] = {0};
    BOOL    NeueDatei = true;
    FILE    *Datei = NULL;
    char	KanalName[KANALNAMEMAX] = {0};
    char	WertText[KANALWERTTEXTMAX]={0};
    int     Zeichen = 0;
    DWORD   KanalHandle;

	ausgabe(LOG, DEBUGALLES, "LogMonatDatei gestartet!!!\n");

    GetMonat(DatumBuffer, sizeof(DatumBuffer)-1);
    GetZeitpunkt(ZeitpunktBuffer, sizeof(ZeitpunktBuffer)-1);

    sprintf(DateiBuffer, "%s/%s.%s", Pfad, DatumBuffer, OutputDatei);

	ausgabe(LOG, DEBUGALLES, "LogDatei %s erstellen\n", DateiBuffer);

    Datei = fopen(DateiBuffer, "r");
    ausgabe(LOG, DEBUGALLES, "Überprüfen ob LogDatei %s geöffnet werden kann!!!\n", DateiBuffer);
    if (Datei)                              // Wenn Datei geöffnet werden konnte dann wurde sie bereits erstellt
    {                                       // und es muss kein Dateikopf mehr erstellt werden.
        ausgabe(LOG, DEBUGALLES, "LogDatei %s konnte geöffnet werden!!!\n", DateiBuffer);
        NeueDatei = false;
        fclose(Datei);
    }

    Datei = fopen(DateiBuffer, "a");
    if (!Datei)
    {
        ausgabe(LOG, DEBUGALLES, "LogDatei %s konnte nicht geöffnet werden!!!\n", DateiBuffer);
        return;
    }
    else
    {	// Logdatei wurde zum Schreiben geöffnet
        ausgabe(LOG, DEBUGALLES, "Ausgabe in Datei %s wird gestartet.\n", DateiBuffer);
        setbuf(Datei, 0);                                                       // Pufferung abschalten

		// Erstellen des Dateikopfes wenn nötig
        if(NeueDatei)
        {
            fprintf(Datei, "LogMonatDatei erstellt am %s von %s %s\r\n", ZeitpunktBuffer, ProgrammName, ProgrammVersion);
            fprintf(Datei, "---------------------------------------------------------------------------------------------------------------------------\r\n");
            fprintf(Datei, "                   \t");

            for(i = 1; i <= LogMonatWRAnzahl; i++)
            {
                for(j = 1; j <= LogMonatKanalAnzahl; j++)
                {
                    KanalHandle = FindChannelName(WRHandles[0], LogMonatKanal[j - 1]);

                    if(KanalHandle == 0)
                    {           // Kanal nicht vom WR
                                // Die Errechneten Kanaele durchsuchen
                        for(k = 1; k <= ErrechneteKanaeleAnzahl; k++)
                        {
                            if(strncmp(LogMonatKanal[j - 1], ErrechneteKanaeleName[k - 1], sizeof(LogMonatKanal[j - 1])-1) == 0)
                            {
                                KanalHandle = k;
                                break;
                            }
                        }
                        if(KanalHandle == 0)
                        {           // Kanal nicht gefunden
                        	Zeichen = 15;
                        }
                        else
                        {           // Errechneter Kanal
                       		Zeichen = ErrechneteKanaeleZeichen[KanalHandle - 1];
                        }
                    }
                    else
                    {           // Kanal vom WR
                        Zeichen = KanalWertZeichenAnzahlMAX(KanalHandle);
                    }

                    if(j == 1)
                    {
                    	char *Temp[20] = {0};

                    	if(strncmp(LogMonatWR[i - 1], "9999999999", 10) == 0)
                    	{
                    		strncpy(Temp, LogMonatSummeUeberschrift, sizeof(Temp)-1);
                    	}
                    	else
                    	{
                    		strncpy(Temp, LogMonatWR[i - 1], sizeof(Temp)-1);
                    	}

                    	if(Zeichen < strlen(Temp))
                    	{
                    		Zeichen = strlen(Temp);
                    	}
                        fprintf(Datei, "%-*s\t", Zeichen, Temp);
                    }
                    else
                    {
                        fprintf(Datei, "%*s\t", Zeichen, "");
                    }
                }
            }

            fprintf(Datei, "\r\nZeitpunkt          \t");

            for(i = 1; i <= LogMonatWRAnzahl; i++)
            {
                for(j = 1; j <= LogMonatKanalAnzahl; j++)
                {
                    KanalHandle = FindChannelName(WRHandles[0], LogMonatKanal[j - 1]);

                    if(KanalHandle == 0)
                    {           // Kanal nicht vom WR
                                // Die Errechneten Kanaele durchsuchen
                        for(k = 1; k <= ErrechneteKanaeleAnzahl; k++)
                        {
                            if(strncmp(LogMonatKanal[j - 1], ErrechneteKanaeleName[k - 1], sizeof(LogMonatKanal[j - 1])-1) == 0)
                            {
                                KanalHandle = k;
                                break;
                            }
                        }
                        if(KanalHandle == 0)
                        {           // Kanal nicht gefunden
                            fprintf(Datei, "???%*s???\t", LogMonatDateiZeichenAnzahl(j, 15, i)-6, LogMonatKanal[j - 1]);
                        }
                        else
                        {           // Errechneter Kanal
                        	fprintf(Datei, "%*s\t", LogMonatDateiZeichenAnzahl(j, ErrechneteKanaeleZeichen[KanalHandle - 1], i), ErrechneteKanaeleName[KanalHandle - 1]);
                        }
                    }
                    else
                    {           // Kanal vom WR
                    	GetChannelName(KanalHandle, KanalName, sizeof(KanalName)-1);
                    	fprintf(Datei, "%*s\t", LogMonatDateiZeichenAnzahl(j, KanalWertZeichenAnzahlMAX(KanalHandle), i), KanalName);
                    }
                }
            }
		}

		// AB hier wird die Datei mit Daten gefüttert
        fprintf(Datei, "\r\n");
        fprintf(Datei, "%s\t", ZeitpunktBuffer);

        for(i = 1; i <= LogMonatWRAnzahl; i++)
        {
            for(j = 1; j <= LogMonatKanalAnzahl; j++)
            {
                KanalHandle = FindChannelName(WRHandles[0], LogMonatKanal[j - 1]);

                if(KanalHandle == 0)
                {           // Kanal nicht vom WR
                    if(GetWertCalcKanalSN(LogMonatKanal[j - 1], LogMonatWR[i - 1], WertText, sizeof(WertText)-1) == -1)
                    {		// Kanal nicht gefunden
                        fprintf(Datei, "%*s\t", LogMonatDateiZeichenAnzahl(j, 15, i), "");
                    }
                    else
                    {		// Kanal gefunden
                        fprintf(Datei, "%*s\t", LogMonatDateiZeichenAnzahl(j, GetZeichenCalcKanal(LogMonatKanal[j - 1]), i), WertText);
                    }
				}
                else
                {           // Kanal vom WR
					KanalAbfragenSN(KanalHandle, LogMonatWR[i - 1], WertText, sizeof(WertText)-1);

                    fprintf(Datei, "%*s\t", LogMonatDateiZeichenAnzahl(j, KanalWertZeichenAnzahlMAX(KanalHandle), i), WertText);
                }
            }
        }
		fclose(Datei);
	}
}
Esempio n. 7
0
/**************************************************************************
   Description   : Erstellen der Log Dateien
   Parameter     : (none)
   Return-Value  : (none)
   Changes       : Author, 		Date, 		Version, 	Reason
                   ********************************************************
                   Dotterweich,	01.09.2007, 0.1, 		Created
**************************************************************************/
void LogDatei(char *Pfad, char *OutputDatei, int Format)
{
	int		Zaehler = 1;

	ausgabe(LOG, DEBUGALLES, "LogDatei gestartet!!!\n");

    for(Zaehler = 1; Zaehler <= AnzahlErfassterWR; Zaehler++)
    {
        BOOL	NeueDatei = true;
        char	NameBuffer[50] = {0};
    	char	TypeBuffer[50] = {0};
		DWORD	SNBuffer = 0;
		char	DatumBuffer[20] = {0};
    	char	DateiBuffer[200] = {0};
		FILE	*Datei = NULL;

        GetDeviceName(WRHandles[Zaehler - 1], NameBuffer, sizeof(NameBuffer)-1);
        GetDeviceType(WRHandles[Zaehler - 1], TypeBuffer, sizeof(TypeBuffer)-1);
        GetDeviceSN(WRHandles[Zaehler - 1], &SNBuffer);
        GetDatum(DatumBuffer, sizeof(DatumBuffer)-1);

        ausgabe(LOG, DEBUGALLES, "LogDatei für WR %3ld erstellen\n", SNBuffer);

		sprintf(DateiBuffer, "%s/%s.%3ld.%s.%s", Pfad, DatumBuffer, SNBuffer, TypeBuffer, OutputDatei);

        Datei = fopen(DateiBuffer, "r");
        ausgabe(LOG, DEBUGALLES, "Überprüfen ob LogDatei %s geöffnet werden kann!!!\n", DateiBuffer);
        if (Datei)                   			// Wenn Datei geöffnet werden konnte dann wurde sie bereits erstellt
        {                                   	// und es muss kein Dateikopf mehr erstellt werden.
            ausgabe(LOG, DEBUGALLES, "LogDatei %s konnte geöffnet werden!!!\n", DateiBuffer);
            NeueDatei = false;
            fclose(Datei);
        }

        Datei = fopen(DateiBuffer, "a");
        if (!Datei)
        {
            ausgabe(LOG, DEBUGMINI, "LogDatei %s konnte nicht geöffnet werden!!!\n", DateiBuffer);
            return;
        }
        else
        {
        	int			i = 0;
        	int			j = 0;
        	int			KanalAnzahl = 0;
            DWORD		KanalHandle;
            TChanType 	KanalType = ALLCHANNELS;
            char		KanalName[50] = {0};
            char		WertText[50]={0};
			char		ZeitpunktBuffer[50] = {0};

            ausgabe(LOG, DEBUGALLES, "Ausgabe in Datei %s wird gestartet.\n", DateiBuffer);
            setbuf(Datei, 0);                      									// Pufferung abschalten

            // Ab hier Ausgaben in Datei
            GetZeitpunkt(ZeitpunktBuffer, sizeof(ZeitpunktBuffer)-1);

            if(NeueDatei)
            {
                fprintf(Datei, "LogDatei für WR %3ld erstellt am %s von %s %s\r\n", SNBuffer, ZeitpunktBuffer, ProgrammName, ProgrammVersion);
                fprintf(Datei, "---------------------------------------------------------------------------------------------------------------------------\r\n");
                fprintf(Datei, "Zeitpunkt          \t");

				ausgabe(LOG, DEBUGALLES, "LogKanalAnzahl %i\n", LogKanalAnzahl);

                for(i = 1; i <= LogKanalAnzahl; i++)
                {
                    KanalHandle = FindChannelName(WRHandles[Zaehler - 1], LogKanal[i - 1]);

					ausgabe(LOG, DEBUGALLES, "1. KanalHandle %i\n", KanalHandle);

                    if(KanalHandle == 0)
                    {           // Kanal nicht vom WR
                                // Die Errechneten Kanaele durchsuchen
                        for(j = 1; j <= ErrechneteKanaeleAnzahl; j++)
                        {
                            if(strncmp(LogKanal[i - 1], ErrechneteKanaeleName[j - 1], sizeof(LogKanal[i - 1])-1) == 0)
                            {
                                KanalHandle = j;
                                break;
                            }
                        }
                        if(KanalHandle == 0)
                        {           // Kanal nicht gefunden
                    		fprintf(Datei, "???%9s???\t", LogKanal[i - 1]);
                        }
                        else
                        {           // Errechneter Kanal
                    		fprintf(Datei, "%*s\t", ErrechneteKanaeleZeichen[KanalHandle - 1], ErrechneteKanaeleName[KanalHandle - 1]);
                        }
                    }
                    else
                    {           // Kanal vom WR
                        GetChannelName(KanalHandle, KanalName, sizeof(KanalName)-1);
                        fprintf(Datei, "%*s\t", KanalWertZeichenAnzahlMAX(KanalHandle), KanalName);
                    }
                }
            }

            fprintf(Datei, "\r\n");
            fprintf(Datei, "%s\t", ZeitpunktBuffer);

            for(i = 1; i <= LogKanalAnzahl; i++)
            {
                KanalHandle = FindChannelName(WRHandles[Zaehler - 1], LogKanal[i - 1]);

                if(KanalHandle == 0)
                {           // Kanal nicht vom WR
                            // Die Errechneten Kanaele durchsuchen
                    for(j = 1; j <= ErrechneteKanaeleAnzahl; j++)
                    {
                        if(strncmp(LogKanal[i - 1], ErrechneteKanaeleName[j - 1], sizeof(LogKanal[i - 1])-1) == 0)
                        {
                            KanalHandle = j;
                            break;
                        }
                    }
                    if(KanalHandle == 0)
                    {           // Kanal nicht gefunden
                        fprintf(Datei, "               \t");
                    }
                    else
                    {           // Errechneter Kanal
                		fprintf(Datei, "%s\t", ErrechneteKanaeleWert[Zaehler - 1][KanalHandle - 1]);
                    }
                }
                else
                {           // Kanal vom WR
            	KanalAbfragen(KanalHandle, WRHandles[Zaehler - 1], WertText, sizeof(WertText)-1);		// Abfragen eines Kanales
				fprintf(Datei, "%s\t", WertText);
                }
            }
            ausgabe(LOG, DEBUGALLES, "Ausgabe in Dateien ist beendet.\n");
		}
		fclose(Datei);
	}
}
Esempio n. 8
0
/**************************************************************************
   Description   : Erstellen der Log Gesamt Dateien
   Parameter     : (none)
   Return-Value  : (none)
   Changes       : Author, 		Date, 		Version, 	Reason
                   ********************************************************
                   Dotterweich,	22.08.2007, 0.1, 		Created
**************************************************************************/
void LogGesamtDatei(char *Pfad, char *OutputDatei, int Format)
{
	int		Zaehler = 1;

	ausgabe(LOG, DEBUGMINI, "LogGesamtDatei gestartet!!!\n");

    for(Zaehler = 1; Zaehler <= AnzahlErfassterWR; Zaehler++)
    {
        BOOL	NeueDatei = true;
        char	NameBuffer[50] = {0};
    	char	TypeBuffer[50] = {0};
		DWORD	SNBuffer = 0;
		char	DatumBuffer[20] = {0};
    	char	DateiBuffer[200] = {0};
		FILE	*Datei = NULL;

        GetDeviceName(WRHandles[Zaehler - 1], NameBuffer, sizeof(NameBuffer)-1);
        GetDeviceType(WRHandles[Zaehler - 1], TypeBuffer, sizeof(TypeBuffer)-1);
        GetDeviceSN(WRHandles[Zaehler - 1], &SNBuffer);
        GetDatum(DatumBuffer, sizeof(DatumBuffer)-1);

        ausgabe(LOG, DEBUGALLES, "LogGesamtDatei für WR %3ld erstellen\n", SNBuffer);

		sprintf(DateiBuffer, "%s/%s.%3ld.%s.%s", Pfad, DatumBuffer, SNBuffer, TypeBuffer, OutputDatei);

        Datei = fopen(DateiBuffer, "r");
        ausgabe(LOG, DEBUGALLES, "Überprüfen ob LogDatei %s geöffnet werden kann!!!\n", DateiBuffer);
        if (Datei)                   			// Wenn Datei geöffnet werden konnte dann wurde sie bereits erstellt
        {                                   	// und es muss kein Dateikopf mehr erstellt werden.
            ausgabe(LOG, DEBUGALLES, "LogDatei %s konnte geöffnet werden!!!\n", DateiBuffer);
            NeueDatei = false;
            fclose(Datei);
        }

        Datei = fopen(DateiBuffer, "a");
        if (!Datei)
        {
            ausgabe(LOG, DEBUGMINI, "LogDatei %s konnte nicht geöffnet werden!!!\n", DateiBuffer);
            return;
        }
        else
        {
        	int			i = 0;
        	int			KanalAnzahl = 0;
            DWORD		KanalHandle[KANALMAX];
            TChanType 	KanalType = ALLCHANNELS;
            char		KanalName[50] = {0};
            char		WertText[50]={0};
			char		ZeitpunktBuffer[50] = {0};

            ausgabe(LOG, DEBUGALLES, "Ausgabe in Datei %s wird gestartet.\n", DateiBuffer);
            setbuf(Datei, 0);                      									// Pufferung abschalten

            // Ab hier Ausgaben in Datei
            KanalAnzahl = GetChannelHandlesEx(WRHandles[Zaehler - 1], KanalHandle, KANALMAX, KanalType);
            GetZeitpunkt(ZeitpunktBuffer, sizeof(ZeitpunktBuffer)-1);

            if(NeueDatei)
            {
                fprintf(Datei, "LogDatei für WR %3ld erstellt am %s von %s %s\r\n", SNBuffer, ZeitpunktBuffer, ProgrammName, ProgrammVersion);
                fprintf(Datei, "WR '%s' hat %d Kanäle:\r\n", NameBuffer, KanalAnzahl);
                fprintf(Datei, "---------------------------------------------------------------------------------------------------------------------------\r\n");
                fprintf(Datei, "Zeitpunkt          \t");
				// Kanäle der WR
                for(i = 0; i < KanalAnzahl; i++)
                {
                    GetChannelName(KanalHandle[i], KanalName, sizeof(KanalName)-1);

                    fprintf(Datei, "%*s\t", KanalWertZeichenAnzahlMAX(KanalHandle[i]), KanalName);
                }
                // Die Errechneten Kanaele
                for(i = 0; i < ErrechneteKanaeleAnzahl; i++)
                {
                    fprintf(Datei, "%*s\t", ErrechneteKanaeleZeichen[i], ErrechneteKanaeleName[i]);
                }
            }

            fprintf(Datei, "\r\n");
            fprintf(Datei, "%s\t", ZeitpunktBuffer);

			// Kanäle der WR
            for(i = 0; i < KanalAnzahl; i++)
            {
            	KanalAbfragen(KanalHandle[i], WRHandles[Zaehler - 1], WertText, sizeof(WertText)-1);		// Abfragen eines Kanales

				fprintf(Datei, "%s\t", WertText);
            }
            // Die Errechneten Kanaele
            for(i = 0; i < ErrechneteKanaeleAnzahl; i++)
            {
                fprintf(Datei, "%s\t", ErrechneteKanaeleWert[Zaehler - 1][i]);
            }
            ausgabe(LOG, DEBUGALLES, "Ausgabe in Dateien ist beendet.\n");
		}
		fclose(Datei);
	}
}
	std::vector<std::shared_ptr<KeyFrameAnimation>> FBXConverter::LoadCurve(FbxAnimLayer* fbxAnimLayer, FbxNode* fbxNode, int32_t frameCount)
	{
		std::vector<std::shared_ptr<KeyFrameAnimation>> ret;
		auto boneName = fbxNode->GetName();
		auto transXCurve = fbxNode->LclTranslation.GetCurve(fbxAnimLayer, FBXSDK_CURVENODE_COMPONENT_X);
		auto transYCurve = fbxNode->LclTranslation.GetCurve(fbxAnimLayer, FBXSDK_CURVENODE_COMPONENT_Y);
		auto transZCurve = fbxNode->LclTranslation.GetCurve(fbxAnimLayer, FBXSDK_CURVENODE_COMPONENT_Z);

		auto rotXCurve = fbxNode->LclRotation.GetCurve(fbxAnimLayer, FBXSDK_CURVENODE_COMPONENT_X);
		auto rotYCurve = fbxNode->LclRotation.GetCurve(fbxAnimLayer, FBXSDK_CURVENODE_COMPONENT_Y);
		auto rotZCurve = fbxNode->LclRotation.GetCurve(fbxAnimLayer, FBXSDK_CURVENODE_COMPONENT_Z);

		auto rot = fbxNode->LclRotation.GetCurveNode(fbxAnimLayer);
		auto lclR = fbxNode->LclRotation.Get();
		auto defRotX = lclR[0];
		auto defRotY = lclR[1];
		auto defRotZ = lclR[2];
		if (rot != nullptr)
		{
			for (size_t i = 0; i < rot->GetChannelsCount(); i++)
			{
				auto name = rot->GetChannelName(i);
				if (name == "X")
				{
					defRotX = rot->GetChannelValue(name, defRotX);
				}
				if (name == "Y")
				{
					defRotY = rot->GetChannelValue(name, defRotY);
				}
				if (name == "Z")
				{
					defRotZ = rot->GetChannelValue(name, defRotZ);
				}
			}

		}

		auto sclXCurve = fbxNode->LclScaling.GetCurve(fbxAnimLayer, FBXSDK_CURVENODE_COMPONENT_X);
		auto sclYCurve = fbxNode->LclScaling.GetCurve(fbxAnimLayer, FBXSDK_CURVENODE_COMPONENT_Y);
		auto sclZCurve = fbxNode->LclScaling.GetCurve(fbxAnimLayer, FBXSDK_CURVENODE_COMPONENT_Z);

		if (transXCurve != nullptr)
		{
			auto c = LoadCurve(transXCurve, frameCount);
			c->Name = boneName;
			c->Target = AnimationTarget::TX;
			ret.push_back(c);
		}

		if (transYCurve != nullptr)
		{
			auto c = LoadCurve(transYCurve, frameCount);
			c->Name = boneName;
			c->Target = AnimationTarget::TY;
			ret.push_back(c);
		}

		if (transZCurve != nullptr)
		{
			auto c = LoadCurve(transZCurve, frameCount);
			c->Name = boneName;
			c->Target = AnimationTarget::TZ;
			ret.push_back(c);
		}

		if (rotXCurve != nullptr)
		{
			auto c = LoadCurve(rotXCurve, frameCount);
			c->Name = boneName;
			c->Target = AnimationTarget::RX;
			ret.push_back(c);
		}

		if (rotYCurve != nullptr)
		{
			auto c = LoadCurve(rotYCurve, frameCount);
			c->Name = boneName;
			c->Target = AnimationTarget::RY;
			ret.push_back(c);
		}

		if (rotZCurve != nullptr)
		{
			auto c = LoadCurve(rotZCurve, frameCount);
			c->Name = boneName;
			c->Target = AnimationTarget::RZ;
			ret.push_back(c);
		}

		if (sclXCurve != nullptr)
		{
			auto c = LoadCurve(sclXCurve, frameCount);
			c->Name = boneName;
			c->Target = AnimationTarget::SX;
			ret.push_back(c);
		}

		if (sclYCurve != nullptr)
		{
			auto c = LoadCurve(sclYCurve, frameCount);
			c->Name = boneName;
			c->Target = AnimationTarget::SY;
			ret.push_back(c);
		}

		if (sclZCurve != nullptr)
		{
			auto c = LoadCurve(sclZCurve, frameCount);
			c->Name = boneName;
			c->Target = AnimationTarget::SZ;
			ret.push_back(c);
		}

		for (auto i = 0; i< fbxNode->GetChildCount(); i++)
		{
			auto kfas = LoadCurve(fbxAnimLayer, fbxNode->GetChild(i), frameCount);

			for (auto a : kfas)
			{
				ret.push_back(a);
			}
		}

		return ret;
	}