GiN Tjobingz0r
// Means it's a comment, our superior text-parser won't read it.. 
// So, this means you suck, cause you tried to hack the format punk!!... ;)

//This is unortodox fox.

//Bitch	
Format=GiNInternalMesh
//means it's not encrypted
EncryptKey=0 
//special thanks to all my friends..

//only one model.
NrOfModels=1

//Here comes some modelinfo.
model 1 start
modelName=the super test model

PositionX=0
PositionY=0
PositionZ=0

//quaternations shit, aight.. convert to matrix offcourse
RotationX=0
RotationY=0
RotationZ=0.7
RotationW=0.7

ScaleX=1
ScaleY=1
ScaleZ=1

nrOfVertices=60  
nrOfIndices=88
// max would be 8 texturecoords for my engine.
nrOfTextureCoords=1 
nrOfVertexColours=0
normalsStored=false

//Denne daten viser seg  _IKKE_ vre vertexene, how the what the fuck?? lagrer dette som ginFuck.txt
//it's aight, vi laster bare opp verticene som er gitt i nrOfVertices og s sker vi til neste data.
Vertices Offset
{
24.580559 31.884052 43.478252
24.565460 31.884052 28.379723
25.461662 26.887007 43.478252
-24.069098 31.884054 43.478256
-24.950199 26.887011 43.478252
-24.053999 31.884054 28.379723
-23.430098 18.265934 43.478249
-19.053133 10.684690 43.478249
-12.347238 5.057683 43.478249
-4.121237 2.063615 43.478252
4.632690 2.063613 43.478252
12.858693 5.057681 43.478249
19.564590 10.684685 43.478249
23.941555 18.265930 43.478249
24.549032 31.884054 11.954346
-24.037573 31.884054 11.954346
24.532608 31.884054 -4.471035
-24.021145 31.884054 -4.471035
24.516182 31.884054 -20.896408
-24.004721 31.884054 -20.896408
25.461664 26.801538 28.408552
-24.950201 26.801540 28.408552
-23.430099 18.180744 28.457447
-19.053135 10.599743 28.500444
-12.347239 4.972916 28.532358
-4.121237 1.978944 28.549339
4.632690 1.978942 28.549339
12.858693 4.972912 28.532358
19.564592 10.599737 28.500444
23.941559 18.180738 28.457447
25.461664 26.708382 11.983702
-24.950201 26.708384 11.983702
-23.430099 18.087587 12.032597
-19.053135 10.506586 12.075594
-12.347239 4.879759 12.107508
-4.121237 1.885787 12.124489
4.632690 1.885785 12.124489
12.858693 4.879755 12.107508
19.564592 10.506580 12.075594
23.941559 18.087580 12.032597
25.461664 26.615225 -4.441153
-24.950201 26.615227 -4.441153
-23.430099 17.994431 -4.392258
-19.053135 10.413429 -4.349260
-12.347239 4.786602 -4.317347
-4.121237 1.792630 -4.300366
4.632690 1.792628 -4.300366
12.858693 4.786598 -4.317347
19.564592 10.413424 -4.349260
23.941559 17.994423 -4.392258
25.461664 26.522068 -20.865999
-24.950201 26.522070 -20.865999
-23.430099 17.901272 -20.817104
-19.053135 10.320271 -20.774107
-12.347239 4.693444 -20.742193
-4.121237 1.699473 -20.725212
4.632690 1.699471 -20.725212
12.858693 4.693440 -20.742193
19.564592 10.320266 -20.774107
23.941559 17.901266 -20.817104
}

TextureCoords 1
{
2.314911 3.701922 
2.313783 2.199953 
2.380651 3.701922 
-1.314905 3.701928 
-1.380645 3.701928 
-1.313780 2.199959 
-1.267228 3.701927 
-0.940657 3.701927 
-0.440321 3.701926 
0.173431 3.701925 
0.826574 3.701924 
1.440327 3.701923 
1.940663 3.701922 
2.267234 3.701922 
2.312556 0.565993 
-1.312556 0.565999 
2.311329 -1.067968 
-1.311332 -1.067962 
2.310102 -2.701928 
-1.310107 -2.701922 
2.380650 2.202821 
-1.380647 2.202827 
-1.267230 2.207691 
-0.940659 2.211968 
-0.440323 2.215142 
0.173430 2.216830 
0.826572 2.216829 
1.440325 2.215139 
1.940661 2.211963 
2.267233 2.207685 
2.380648 0.568913 
-1.380648 0.568919 
-1.267231 0.573783 
-0.940660 0.578060 
-0.440324 0.581234 
0.173429 0.582922 
0.826571 0.582921 
1.440324 0.581231 
1.940660 0.578055 
2.267231 0.573777 
2.380647 -1.064995 
-1.380650 -1.064989 
-1.267233 -1.060125 
-0.940662 -1.055849 
-0.440326 -1.052675 
0.173427 -1.050987 
0.826569 -1.050988 
1.440322 -1.052678 
1.940659 -1.055853 
2.267230 -1.060131 
2.380645 -2.698903 
-1.380651 -2.698897 
-1.267234 -2.694033 
-0.940663 -2.689756 
-0.440327 -2.686582 
0.173426 -2.684894 
0.826568 -2.684895 
1.440321 -2.686585 
1.940657 -2.689761 
2.267228 -2.694039
} 

Indices
{
21 31 32
32 22 21
22 32 33
33 23 22
23 33 34
34 24 23
24 34 35
35 25 24
25 35 36
36 26 25
26 36 37
37 27 26
27 37 38
38 28 27
28 38 39
39 29 28
29 39 30
30 20 29
31 41 42
42 32 31
32 42 43
43 33 32
33 43 44
44 34 33
34 44 45
45 35 34
35 45 46
46 36 35
36 46 47
47 37 36
37 47 48
48 38 37
38 48 49
49 39 38
39 49 40
40 30 39
41 51 52
52 42 41
42 52 53
53 43 42
43 53 54
54 44 43
44 54 55
55 45 44
45 55 56
56 46 45
46 56 57
57 47 46
47 57 58
58 48 47
48 58 59
59 49 48
49 59 50
50 40 49
20 1 0
0 2 20
5 15 31
31 21 5
30 14 1
1 20 30
40 16 14
14 30 40
17 19 51
51 41 17
31 15 17
17 41 31
50 18 16
16 40 50
3 5 21
21 4 3
22 6 4
4 21 22
23 7 6
6 22 23
24 8 7
7 23 24
25 9 8
8 24 25
26 10 9
9 25 26
27 11 10
10 26 27
28 12 11
11 27 28
29 13 12
12 28 29
20 2 13
13 29 20
}

//do more work tomorow ol' chap ;=), yes offcourse.. this is tomorow, work commending. :) I must go to the toilet and shit some too.
//what the fuck, why do I write these dirty comments,, hehe *added 2. april 2004*
MeshDependant Modifiers
//Modifier skinning

//skinning 1 *doesnt use skinning, I comment it out.
//another one, for test purposes


MeshIndependant Modifiers
//modifier noise not implemented yet.


//end of model 1 data.
model 1 end

//say that we start meshDependant modifiers..
MeshDependant Modifiers start

skinning 1 start

//what kind of model is it?
modelDep 1
//what skeleton id's is it compatible with?
skeleton 1
//length of this is same as nr of vertices.. info is used to compute length of next tables.
BonesNr
{
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2
}

//used to index bones.. bones is in a tree-structure so it will actually be searching.
BonesIdArray
{
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 3 3 3 3 3 3 3 
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 3 4 3 4 3 4 3 4 3 4 3 4 3 4 4 4 4 3 4 3 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
}

//same function as id's, but it's text based. we could ignore them, though names are always nice.
boneNames
{
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone01
Bone02
Bone01
Bone02
Bone01
Bone02
Bone01
Bone02
Bone01
Bone02
Bone01
Bone02
Bone01
Bone02
Bone01
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone02
Bone03
Bone02
Bone03
Bone02
Bone03
Bone02
Bone03
Bone02
Bone03
Bone02
Bone03
Bone02
Bone03
Bone02
Bone03
Bone03
Bone03
Bone03
Bone02
Bone03
Bone02
Bone03
Bone02
Bone03
Bone03
Bone03
Bone03
Bone03
Bone03
Bone03
Bone03
Bone03
Bone03
Bone03
Bone03
Bone03
Bone03
Bone03
Bone03
Bone03
Bone03
Bone03
Bone03
Bone04
}

//Here are the meat of the shiat, the weights. it has the length calculated by that shit up there. ;)
Weights
{
1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.090246 0.909754 0.076569 0.923431 0.046200 0.953800 0.021932 0.978068 0.014329 0.985671 0.021933 0.978067 0.046202 0.953798 0.076571 0.923429 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 
1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.603183 0.396817 0.590508 0.409492 0.567538 0.432462 0.551603 0.448397 0.546383 0.453617 0.551603 0.448397 0.567535 0.432465 0.590505 0.409495 1.000000 1.000000 1.000000 0.000161 0.999839 0.000997 0.999003 0.000161 0.999839 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.500000 0.500000
}
skinning 1 end
MeshDependant Modifiers end

MeshIndependant Modifiers start
//we don't have anyone.
MeshIndependant Modifiers end

skeleton 1 start
//bones go here..
//aight, hva skal vi gjre dersom det ikke finner parent fordi parent ikke er lastet enda?...
bone 1 start
Parent=0
NodeId=2
Name=Bone01

PositionX=0.0000002
PositionY=-30.000210
PositionZ=0.2

RotationX=-0.15
RotationY=0.68
RotationZ=0.15
RotationW=0.68

ScaleX=1
ScaleY=1
ScaleZ=1

NrOfVertices=9
NrOfIndices=14
NormalsStored=false

Vertices
{
4.999876 -4.999996 4.999997
4.999876 4.999996 4.999997
4.999876 4.999996 -4.999997
4.999876 -4.999996 -4.999997
66.170631 -0.500000 0.500000
66.170631 0.500000 0.500000
66.170631 0.500000 -0.500000
66.170631 -0.500000 -0.500000
0.000000 0.000000 0.000000
}

Indices
{
4 7 5  
6 5 7  
1 5 2  
6 2 5  
0 4 1  
5 1 4  
7 3 6  
2 6 3  
4 0 7  
3 7 0  
8 0 1  
8 1 2  
8 2 3  
8 3 0  
}

bone 1 end

bone 2 start
Parent=2
NodeId=3
Name=Bone02

PositionX=66.1706
PositionY=-0.000002
PositionZ=0.0000004

RotationX=-0.0000012
RotationY=-0.0000010
RotationZ=-0.4504004
RotationW=0.8797

ScaleX=1
ScaleY=1
ScaleZ=1


NrVertices=9
NrOfIndices=14
NormalsStored=false

Vertices
{
4.999924 -4.999995 4.999994
4.999924 4.999995 4.999994
4.999924 4.999995 -4.999994
4.999924 -4.999995 -4.999994
63.841290 -0.500000 0.499999
63.841290 0.500000 0.499999
63.841290 0.500000 -0.499999
63.841290 -0.500000 -0.499999
0.000000 0.000000 0.000000
}

Indices
{
4 7 5  
6 5 7  
1 5 2  
6 2 5  
0 4 1  
5 1 4  
7 3 6  
2 6 3  
4 0 7  
3 7 0  
8 0 1  
8 1 2  
8 2 3  
8 3 0  
}

bone 2 end

bone 3 start
Parent=3
NodeId=4
Name=Bone03

PositionX=63.032032
PositionY=0.0000012
PositionZ=0.0

RotationX=0.24
RotationY=0.27
RotationZ=0.38
RotationW=0.84

ScaleX=1
ScaleY=1
ScaleZ=1

NrVertices=9
NrOfIndices=14
NormalsStored=false

Vertices
{
4.999991 -4.999994 4.999993
4.999991 4.999994 4.999993
4.999991 4.999994 -4.999993
4.999991 -4.999994 -4.999993
37.483597 -0.500000 0.499999
37.483597 0.500000 0.499999
37.483597 0.500000 -0.499999
37.483597 -0.500000 -0.499999
0.000000 0.000000 0.000000
}

Indices
{
4 7 5  
6 5 7  
1 5 2  
6 2 5  
0 4 1  
5 1 4  
7 3 6  
2 6 3  
4 0 7  
3 7 0  
8 0 1  
8 1 2  
8 2 3  
8 3 0  
}

bone 3 end

bone 4 start
Parent=4
NodeId=5
Name=Bone4

PositionX=37.43
PositionY=0.0
PositionZ=0.0

RotationX=0
RotationY=0
RotationZ=0
RotationW=1

ScaleX=1
ScaleY=1
ScaleZ=1

NrVertices=9
NrOfIndices=14
NormalsStored=false

Vertices
{
4.999990 -4.999992 4.999991
4.999990 4.999992 4.999991
4.999990 4.999992 -4.999991
4.999990 -4.999992 -4.999991
9.999979 -0.499999 0.499999
9.999979 0.499999 0.499999
9.999979 0.499999 -0.499999
9.999979 -0.499999 -0.499999
0.000000 0.000000 0.000000
}

Indices
{
4 7 5  
6 5 7  
1 5 2  
6 2 5  
0 4 1  
5 1 4  
7 3 6  
2 6 3  
4 0 7  
3 7 0  
8 0 1  
8 1 2  
8 2 3  
8 3 0  
} 

bone 4 end

Skeleton 1 end
//we state EOF because of stupid shit, that wouldn't work, with this we could jump when finding end
//we even need to have it twice, I'll just say WTF!! stupid ifstream, c++ standard lack libary
EOF-GiN
EOF-GiN