Mitglied wählen
Freunde
Suche
libnltrack Static Library Gehe zu Seite 1, 2, 3  Weiter
Autor Nachricht
geforcefan
nach oben
Aufsteiger Ercan
Schaafheim
Deutschland . HE
 
Link zum Beitrag #531266 Verfasst am Sonntag, 06. April 2008 17:35
2 mal bearbeitet, zuletzt am 06.04.2008 17:43
Themenersteller
Relax
Hello Everybody,
As you guys know, I'm currently working on my "NoLimits to Cinema 4D" exporter Project.
While devloping my exporter, I noticed my code was structured like a library with usefull and easy functions, so it is also easy to use for my other things.

My code was a collection of functions, to ready everthing from a NoLimits Track File.

I think many of you have saw the source code released for the Auto-Supporter project by the user "Popcorned".
I have talked about it and we kept in touch and collected ideas and talked about many things.
One day we have talked about the SDK we miss for NoLimits to develop easy 3rd party tools for NoLimits. However, for many programmers, it is troublesome to deal with the nltrack file and type.

We thought we would have a crack at developing our own SDK for Nolimits. We created a shared C Library with easy usable and usefull functions such as to add supports with only one function.
Also everything the NL track file format is usable with the library.(modified, deleted or added).

With this library, it will make it a lot easier for people to developer thier own NoLimits 3rd party tools.
It's also great for beginners, the library very interesting, understandable and easy to use functions, making it perfect for beginners to start making their own tools.

We are currently working on documentation and the programming is almost ready.

You can see sample C code at the bottom and a picture which was generated with the this library.

------------------------------------------------------------------------------------------- ---------------------------------------------------------------

Hallo Zusammen,

viele wissen ja, ich hänge gerade an dem Projekt, Nolimits Tracks in Cinema 4D zu exportieren.
Im laufe der Entwicklung habe ich gemerkt, das der Code sich zu einem Bibliothek entwickelt, sodass man es problemlos auch für andere Sachen verwenden kann.
Es war eine Sammlung von Funktionen, um NoLimits Track Daten auszulesen.
Wie einige schon gemerkt haben, hatte der Benutzer hier aus onride.de, mit dem Namen "Popcorned" seinen Source Code, zu dem Auto-Supporter veröffentlicht, jedoch hat es nicht funktioniert.
So habe ich mit ihm Kontakt aufgenommen, und wir haben uns gegenseitig geholfen, und auch Ideen gesammelt.
Eines Tages haben wir auch darüber gesprochen, das NoLimits gar keinen SDK bereitstellt, um Tools für NoLimits zu entwickeln. So sind Programmierer auf sich allein gestellt, und müssen einen Track loader & exporter sich selbst basteln. Jedoch für viele Programmierer ist es mühevoll, sich mit der nltrack Datei beschäftigen und geben auf.
Dann dachten wir uns, einen "eigenen" SDK zu programmieren. Das wird eine C Library, mit nützlichen funktionen, wie Stützen hinzufügen und etc.
Eben alles was der NL Track Datei beinhaltet, kann mit dem Library angesprochen werden.

Mit diesem Library denken wir, das wir einigen Programmierer ermöglichen, ganz einfach eigene Tools für NoLimits zu basteln.
Auch für Anfänger wird der Library sehr interessant, da sich Problemlos vieles realisieren, und alle Funktionen sind einfach und verständlich aufgebaut.

Es wird gerade an einer Dokumentation gearbeitet, und die Programmierung ist schon fast fertig.

Zur Demonstration habe ich einen kleinen verständlichen Code vorbereitet:

Code   int i=0;
   
  Color colorwhite = createColorARGB(255, 255, 255, 255);
       
  NlTrack track;
   
  initNewNlTrack(&track);
  setCoasterStyle( HYPER_COASTER, &track );
  setUse16friction(1, &track);
  setNumTrains (2, &track);
  setNumCars (7, &track);
   
  setAuthorComments("This is a libnltrack Test!", &track);   
   
  float a = 1.0f / 255.0f;
  float t = 0.0f;
   
  for(t=0; t<=1; t=t+a)
  {
     float x=sin(3.14 * t * 2) * 10;
     float y=cos(3.14 * t * 2) * 5;
     float z=10+tan(3.14 * t * 2) / 10;

     int freenode = addFreeNode(x, z, y, &track);
       
     addSupport ( NODE_FREE, freenode, 0,
            NODE_FREE, freenode+1,   0,
            TUBE_LARGE, 0, 0, &track);
  }
                                                    
   NlSave("test2.nltrack", &track);   


Wie man sehen kann, gibt es ganz einfache Funktionen, um die Anzahl der Wagen oder Züge einzustellen, sowie einen Kommentar rein zu schreiben. Auch andere Eigenschaften lassen sich verwirklichen, und mit dem Funktionen wie addFreeNode() und addSupport() ist es möglich, ganz einfach Stützen zu bauen S

In dem Code habe ich versucht, per Formel, Stützen zu bauen, und hier das Ergebnis von dem Code (Terra und Track wurde zusätzlich hinzugefügt):

Fremdbild
Quelle: imgdash.com ae9f23652b..png


mfg Ercan
geforcefan
nach oben
Aufsteiger Ercan
Schaafheim
Deutschland . HE
 
Link zum Beitrag #531555 Verfasst am Montag, 07. April 2008 15:29
Themenersteller
Relax
Hallo Zusammen,
die Entwicklung ist rasant, und die ersten Test - Tools wurden schon geschreiben. Das ganze beruht auf dieser Library und wurde mit PHP kombiniert, und dieser Ergebnis erzielt:



Dieser PHP Skript öffnet eine NlTrack Datei, und generiert daraus einen Layout Bild.

Ich hoffe euch gefällt es S

mfg Ercan
RTCfan
nach oben
Aufsteiger

Deutschland . NW
 
Link zum Beitrag #531575 Verfasst am Montag, 07. April 2008 16:20 Relax
Sieht nicht schlecht aus! Auch wenn ich nicht weiß, was das alles zu bedeuten hat. S
First public rider auf Teststrecke!
3.ride on Stealth, Rollback!!!!!!
You are listening to InQontrol 2010 live from the Inter Rai in Amsterdam!
schrubber
nach oben
Aufsteiger

Deutschland . HE
 
Avatar von schrubber
Link zum Beitrag #531710 Verfasst am Montag, 07. April 2008 20:51 Relax
Ich glaube, nicht wenigen wird es so gehen. geforcefan, erklär doch mal für den Durchschnitts Nl-User, was du da genau machst!

Viele Grüße
schrubber
Der frühe Vogel fängt den Wurm- aber die zweite Maus bekommt den Käse.
geforcefan
nach oben
Aufsteiger Ercan
Schaafheim
Deutschland . HE
 
Link zum Beitrag #531720 Verfasst am Montag, 07. April 2008 21:13
Themenersteller
Relax
Eine Programmier Schnittstelle für NoLimits programmieren, damit man eigene Tool mit dieser Schnittstelle ganz einfach und unkompliziert programmieren kann.
Perfekt für Anfänger, und denen die keinen Lust haben, die NoLimits Datei Struktur zu entschlüsseln S

mfg Ercan
geforcefan
nach oben
Aufsteiger Ercan
Schaafheim
Deutschland . HE
 
Link zum Beitrag #531746 Verfasst am Montag, 07. April 2008 22:32
1 mal bearbeitet, zuletzt am 07.04.2008 22:36
Themenersteller
Relax
Update:

Das was ich bei C4D Importer noch nicht geschafft hatte, habe ich es jetzt Geschafft.
Mit etwas Bezier Berechnung habe ich es hinbekommen, die XYZ Position von einem Segment (Track) Node, herauszufinden, und hier mein Ergebnis:



Langsam aber sicher implementiere ich alle Funktionen in meinem Lib, und dann wird der C4D Importer aktiv programmiert.
Dann können wir uns auf dem Voll Funktionsfähigen C4D Importer freuen S

mfg Ercan
ChrisCross
nach oben
Aufsteiger
Marl
Deutschland . NW
 
Avatar von ChrisCross
Link zum Beitrag #531780 Verfasst am Dienstag, 08. April 2008 00:43 Relax
Immer noch ne geile Sache.
Arbeite auf jedenfall weiter daran, könnte einen großen Fortschritt in der NL Geschichte werden.
Meine PHP Fähigkeiten sind begrenzt, aber könnte man damit nicht sogar ein automatisch generiertes/gerendertes Vorschaubild erstellen?
Dann würden Coaster mit nichtssagenden Thumbs endlich der Vergangenheit angehören.
s.kko
nach oben
Einsteiger

Deutschland . NW
 
Avatar von s.kko
Link zum Beitrag #531813 Verfasst am Dienstag, 08. April 2008 08:33 Relax
Funktioniert das nur mit Handmade Supports oder auch mit Prefab?
Ist die Schnittstelle auch mit anderen Programmen neben C4D nutzbar?
geforcefan
nach oben
Aufsteiger Ercan
Schaafheim
Deutschland . HE
 
Link zum Beitrag #531858 Verfasst am Dienstag, 08. April 2008 11:24
Themenersteller
Relax
Auch die Prefabs gehen.
Die Schnittstelle ist eine reine C Bibiliothek und lässt sich mit entsprechenden Kenntnissen alles machen.

Du kannst mit etwas C Kenntnissen, eigene Tools basteln, oder daraus einen Plugin machen (z.b. für C4D wie ich es machen werden)

Zitat Meine PHP Fähigkeiten sind begrenzt, aber könnte man damit nicht sogar ein automatisch generiertes/gerendertes Vorschaubild erstellen?


Wie schon oben erwähnt, lässt sich mit dem C Bibiliothek vieles machen, und auch eine Extension (dll) für PHP werde ich schreiben, damit man innerhalb PHP die Bibiliotheks funktionen benutzen kanns, wie z.b. addSupport() etc.

mfg Ercan
geforcefan
nach oben
Aufsteiger Ercan
Schaafheim
Deutschland . HE
 
Link zum Beitrag #531894 Verfasst am Dienstag, 08. April 2008 13:31
Themenersteller
Relax
s.kko Funktioniert das nur mit Handmade Supports oder auch mit Prefab?


Edit:
Sie gehen nur bedingt, hab vergessen zu erwähnen, das inmoment alle Prefabs, eine einfache Stütze darstellen (das heißt eine gerade Tube).
Aber das will ich auch nicht schwerpunkt mäsig behandeln, die ganzen Screenshots sind eine Reihe von Tests, um zu sehen ob alles funktioniert.

Wenn der Library fertig zum herunterladen ist (sammt der Dokumentation), dann werde ich mich hinsetzten, und die Lib Funktionen für PHP portieren.
Ich denke in Zukunft werdet ihr kleine Tools von mir sehen, und wer weiß wer diesen Library auch benutzt. Vieleicht wird es mehrere kleine Tools von jedem geben S

Anschließend folgt der C4D Plugin, den ich aber etwas Mühevoller erstellen muss. Dort sind es nicht mehr einfache Linien.


Diese Library ist bei der Programmierung die halbe miete, und viele die Tools für NL proggen wollten, sind bestimmt auch an dem Datei Struktur kläglich gescheitert S

mfg Ercan
geforcefan
nach oben
Aufsteiger Ercan
Schaafheim
Deutschland . HE
 
Link zum Beitrag #532168 Verfasst am Dienstag, 08. April 2008 22:19
Themenersteller
Relax
Hallo Leute,
So, jetzt habe ich noch eine Isometrische Transformation hin bekommen S



Die zwei komische Linien sind von mir ausversehen gemacht... Habe keine Lust ein neues Bild zu "rendern" S

mfg Ercan
geforcefan
nach oben
Aufsteiger Ercan
Schaafheim
Deutschland . HE
 
Link zum Beitrag #532411 Verfasst am Mittwoch, 09. April 2008 18:50
Themenersteller
Relax
Update:



mfg Ercan
Thrill
nach oben
Aufsteiger

Deutschland . NW
 
Link zum Beitrag #532444 Verfasst am Mittwoch, 09. April 2008 19:52 Relax
Also, ich finde das ja jetzt alles ziemlich interessant, aber ich versteht rein gar nichts!
Bringt das was du dort erstellst dem Otto-normal-No-Limits-User irgendetwas? S

mfg Thrill
geforcefan
nach oben
Aufsteiger Ercan
Schaafheim
Deutschland . HE
 
Link zum Beitrag #532450 Verfasst am Mittwoch, 09. April 2008 19:58
1 mal bearbeitet, zuletzt am 09.04.2008 19:59
Themenersteller
Relax
Einige NoLimits Exchange Webseiten könnten meinen Lib verwenden um aus hochgeladenen Nltracks solch ein Vorschau Bild zur erstellen.
ich glaube in so fern bringt es einem Otto Normalen Nl User etwas S

mfg Ercan
Thrill
nach oben
Aufsteiger

Deutschland . NW
 
Link zum Beitrag #532455 Verfasst am Mittwoch, 09. April 2008 20:11 Relax
Ich meine, wenn du verhältnismäßig gut soetwas programieren kannst, könntest du dann villeicht ein Programm erstellen, mit dem man seinen eigenen NL Coaster als 3ds Datei bekommt? Damit man mehrere verschiedene Coaster in einem hat.

Weil zum Beispiel das letzte Bild, welches du gepostet hast, dort sieht man ja soweit ich das erkenne einen der neuen X-Car Coaster von dem Update 1.7! Auf Bildern davor sieht man ja schon die einzelnen Vertexe. Und in deinem Projekt davor hattest du ja soweit ich das richtig verstanden hatte, schon gesamte Coaster exportiert.

Naja, ich kenn mich damit wirklich nicht aus, hoffe das es aber villeicht Möglich wäre!

Andere Anregungen wären villeicht Tabellen von den G-Kräften. Ich kenne mich kein bisschen damit aus, kann nicht beurteilen wie schwer das ist!

mfg Thrill
geforcefan
nach oben
Aufsteiger Ercan
Schaafheim
Deutschland . HE
 
Link zum Beitrag #532463 Verfasst am Mittwoch, 09. April 2008 20:25
Themenersteller
Relax
Die G's kann ich nicht exportieren, muss berechnet werden.

Um einen Coaster zu exportieren, muss ich mehr als Linie zeichnen, da muss ich auch einiges rechnen. Ohne Hilfe kriege ich das vll gar nicht hin. Aber ich müsste es mal schauen wenn ich damit fertig bin S

mfg Ercan
Cörmed
nach oben
Einsteiger Cornelius Sauerb...
Wolfratshausen
Deutschland . BY
 
Avatar von Cörmed
Link zum Beitrag #532467 Verfasst am Mittwoch, 09. April 2008 20:40 Relax
Also Ercan respekt!

Alleine die Vorschaubilder sind mehr als nützlich. Die zeigen mal vollkommen übersichtlich den Verlauf der Strecke. Echt gut!

Mfg

Cörmed
Kleine Werbung für meinen Gratis Hoster ->Dann eben nicht :D
Call me the Super Sexy BoogeyMan Slayer
geforcefan
nach oben
Aufsteiger Ercan
Schaafheim
Deutschland . HE
 
Link zum Beitrag #532815 Verfasst am Donnerstag, 10. April 2008 21:00
Themenersteller
Relax
Neu:
+ Segment Spliting:



War nicht so einfach, herauszufinden, wie man einen Segment teilt, aber ich habe es hin bekommen und implementiert S

mfg Ercan
geforcefan
nach oben
Aufsteiger Ercan
Schaafheim
Deutschland . HE
 
Link zum Beitrag #542868 Verfasst am Sonntag, 18. Mai 2008 19:30
1 mal bearbeitet, zuletzt am 18.05.2008 19:40
Themenersteller
Relax
Hallo Zusammen,
ich bin mit der ganzen Sache fast fertig.
Ich habe mir überlegt, wie ich eine Schnittstelle bauen kann, damit man das ganze auch per PHP benutzen kann. Am Anfang wollte ich einen Extension programmieren, aber das würde dann fast nur auf eigenen Srver funktioneren, da man Extensions laden muss.

Da aber viele Webspaces CGI und etc. unterstützen, dachte ich mir, einen Ausführbaren EXE (ELF auf Unix Servern) zu bauen, der den NoLimits Track Datei in einem XML Dokument "exportiert".

Mann würde dann so eine XML Datei exportiert bekommen:

Code   <?xml version="1.0" encoding="ISO-8859-1" ?>
- <nltrack>
- <bezr>
  <totalBeziers>4</totalBeziers>
- <beziers>
- <bezier0>
  <posX>0.000000</posX>
  <posY>1.400000</posY>
  <posZ>8.300000</posZ>
  <cp1X>0.000000</cp1X>
  <cp1Y>1.400000</cp1Y>
  <cp1Z>13.300001</cp1Z>
  <cp2X>0.000000</cp2X>
  <cp2Y>1.400000</cp2Y>
  <cp2Z>3.299998</cp2Z>
  </bezier0>
- <bezier1>
  <posX>0.000000</posX>
  <posY>10.200000</posY>
  <posZ>-14.199997</posZ>
  <cp1X>0.000000</cp1X>
  <cp1Y>6.328000</cp1Y>
  <cp1Z>-5.799995</cp1Z>
  <cp2X>0.000000</cp2X>
  <cp2Y>14.072001</cp2Y>
  <cp2Z>-22.599995</cp2Z>
  </bezier1>
- <bezier2>
  <posX>0.000000</posX>
  <posY>6.600000</posY>
  <posZ>-32.100002</posZ>
  <cp1X>0.000000</cp1X>
  <cp1Y>9.345600</cp1Y>
  <cp1Z>-26.744007</cp1Z>
  <cp2X>0.000000</cp2X>
  <cp2Y>3.854400</cp2Y>
  <cp2Z>-37.456005</cp2Z>
  </bezier2>
- <bezier3>
  <posX>12.800000</posX>
  <posY>8.400000</posY>
  <posZ>-46.499996</posZ>
  <cp1X>2.600000</cp1X>
  <cp1Y>6.799999</cp1Y>
  <cp1Z>-44.999996</cp1Z>
  <cp2X>19.588625</cp2X>
  <cp2Y>9.464882</cp2Y>
  <cp2Z>-47.498318</cp2Z>
  </bezier3>
  </beziers>
  </bezr>
- <tube>
  <totalSupports>2</totalSupports>
- <supports>
- <support0>
- <node1>
  <x>0.000000</x>
  <y>10.110141</y>
  <z>-14.005335</z>
  </node1>
- <node2>
  <x>0.000000</x>
  <y>0.000000</y>
  <z>-7.300000</z>
  </node2>
  </support0>
- <support1>
- <node1>
  <x>0.000000</x>
  <y>10.110141</y>
  <z>-14.005335</z>
  </node1>
- <node2>
  <x>0.000000</x>
  <y>0.000000</y>
  <z>-19.900000</z>
  </node2>
  </support1>
  </supports>
  </tube>
  </nltrack>


Das ist natürlich nur ein Beispiel.

Dazu werde ich später auch eine Klass für PHP Programmiern, der diese XML Struktur untersucht, parst und die C Funktionen bereitstellt.

EDIT:

Beispiel Code für PHP:

Code
<?php

system("nltrack2xml.exe -e tracks/test.nltrack");

$xml = file_get_contents("tracks/test.nltrack.xml");
echo $xml;

?>


mfg Ercan
geforcefan
nach oben
Aufsteiger Ercan
Schaafheim
Deutschland . HE
 
Link zum Beitrag #543069 Verfasst am Montag, 19. Mai 2008 13:40
Themenersteller
Relax
Und hier das erste Ergebniss, wo voll funktionsfähig ist.
Es ist nur eine PHP Datei, der alles automatisch macht, ohne fremde Hilfe:



Das ist Euro Mir

mfg Ercan
daswars
nach oben
Aufsteiger

Deutschland . NW
 
Avatar von daswars
Link zum Beitrag #543072 Verfasst am Montag, 19. Mai 2008 13:49 Relax
WOW! S
ソセツケエオ テトケセサト
duddi
nach oben
Aufsteiger Andreas Duttine

Deutschland . BY
 
Avatar von duddi
Link zum Beitrag #543090 Verfasst am Montag, 19. Mai 2008 14:25 Relax
Wäre ist möglich, dass die Station braun, der Lift grün, Transportsegmente gelb und Bremsen Pink sind?

Wie im Editor, ich denke das würde es noch etwas übersichtlicher machen.

Liebe Grüße,

Andy
[Hat man euch nicht vor uns gewarnt?]
I think the world must learn to forgive... (Kai Streicher, 2008)
geforcefan
nach oben
Aufsteiger Ercan
Schaafheim
Deutschland . HE
 
Link zum Beitrag #543094 Verfasst am Montag, 19. Mai 2008 14:28
Themenersteller
Relax
Alles ist möglich S

Kann ich implementieren S

mfg Ercan
geforcefan
nach oben
Aufsteiger Ercan
Schaafheim
Deutschland . HE
 
Link zum Beitrag #544852 Verfasst am Sonntag, 25. Mai 2008 22:03
1 mal bearbeitet, zuletzt am 25.05.2008 22:03
Themenersteller
Relax
Erste Beta Release ist erscheinen:

code.google.com

In moment ist das ganze nur zur hälfte dokumentiert, und die PHP binding ist auch noch nicht veröffentlicht. Lediglich der C Library ist verfügbar.
Morgen kommt ein kleines Tutorial dazu, wie man solche Stützen erstellt:



mfg Ercan
Hopa
nach oben
Aufsteiger
Idstein
Deutschland . HE
 
Avatar von Hopa
Link zum Beitrag #544933 Verfasst am Montag, 26. Mai 2008 13:13 Relax
Respekt, tolle Arbeit, verstehe zwar nicht viel davon, aber sieht richtig schick aus!! S

MfG HoPa
Gehe zu Seite 1, 2, 3  Weiter Nächster neuer Beitrag in diesem Forum Nächster neuer Beitrag