Ldraw Linetype 1 Rekursiv? Objektorientiert?



  • Hallo,

    schreibe gerade einen Loader für die Ldraw files
    hab ne Klasse Brick, in der ich 5 Structs habe, und Koordinaten speichere
    für die verschiedenen Linetypes

    der Linetype 1 macht mir blos zu schaffen

    Er beinhaltet Koordinaten für ein Subfile das wiederum die 5 Linetypes
    enthält

    //Linetype 1 ist so aufgebaut
    // 1 <colour> x y z a b c d e f g h i <file>

    hat das von euch jemand schon mal gemacht?
    wie löse ich das am Besten in einer Funktion oder Rekursion?

    Rekursiv(Methode Load File in Klasse Object beim Linetype 1 einfach nochmal aufrufen?
    mit Übergabe vom Subfile? wie weis ich dann zu welchem File die
    richtigen Koordinaten gehören? )

    wäre es am Besten eine Klasse File und eine Klasse Objekt
    zu modelieren? wie unterscheide ich zwischen Sub und normalem File?
    in meinen Koordinaten

    muss ich eine Baumstruktur bilden?

    ginge es bei den Structs ein 2 Dimensionales Array zu Bilden
    z.b. 1.Dim FileNummer 2. Dimension Anzahl Lines?

    habs mal so aufgebaut

    class Object
    {
    private:
    
    		struct LineType1
    		{
    			// 1 <colour> x y z a b c d e f g h i <file> 
    			unsigned int LineType;
    			unsigned int Color;
    			unsigned int anzahl;
    			GLfloat x,y,z,a,b,c,d,e,f,g,h,i;
    			string subfile;
    
    		};
    		struct LineType2
    		{
    			unsigned char LineType;
    			unsigned char Color;
    			unsigned char anzahl;
    			float x1,y1,z1,
    				  x2,y2,z2;
    		};
    
    		struct LineType3
    		{
    			unsigned char LineType;
    			unsigned char Color;
    			unsigned char anzahl;
    			float x1,y1,z1,
    				  x2,y2,z2,
    				  x3,y3,z3;
    		};
    
    		struct LineType4
    		{
    			unsigned char LineType;
    			unsigned int Color;
    			unsigned char anzahl;
    			GLfloat x1,y1,z1,
    					x2,y2,z2,
    					x3,y3,z3,
    					x4,y4,z4;
    		};
    
    	LineType1 lt1[300];
    	LineType2 lt2[300];
    	LineType3 lt3[300];
    	LineType4 lt4[300];
    
    	public:
    		Object(){};
    		~Object(){};
    		void load (/*ifstream Quelldatei*/)
    		{
    

    Fragen über Fragen
    Gruß Matthias


Anmelden zum Antworten