trackgen: make global variable GroupRoot local
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@8496 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 653fb615656e65a3da03d4dda8abc36762a43a85 Former-commit-id: 7c604688871e2e23cdad12eb54118acefbea2e33
This commit is contained in:
parent
fb1b6f9fa0
commit
966d295429
1 changed files with 13 additions and 19 deletions
|
@ -48,8 +48,6 @@
|
||||||
static char path[1024];
|
static char path[1024];
|
||||||
static char buf[1024];
|
static char buf[1024];
|
||||||
|
|
||||||
static ssgRoot *GroupRoot = nullptr;
|
|
||||||
|
|
||||||
struct group
|
struct group
|
||||||
{
|
{
|
||||||
ssgBranch *br;
|
ssgBranch *br;
|
||||||
|
@ -98,7 +96,7 @@ ApplyTransform(sgMat4 m, ssgBase *node)
|
||||||
{
|
{
|
||||||
((ssgLeaf *)node)->transform(m);
|
((ssgLeaf *)node)->transform(m);
|
||||||
}
|
}
|
||||||
else
|
else if (node->isAKindOf(ssgTypeBranch()))
|
||||||
{
|
{
|
||||||
ssgBranch *br = (ssgBranch *)node;
|
ssgBranch *br = (ssgBranch *)node;
|
||||||
|
|
||||||
|
@ -247,7 +245,7 @@ AddToRoot(ssgRoot *Root, ssgEntity *node)
|
||||||
{
|
{
|
||||||
Root->addKid(node);
|
Root->addKid(node);
|
||||||
}
|
}
|
||||||
else
|
else if (node->isAKindOf(ssgTypeBranch()))
|
||||||
{
|
{
|
||||||
ssgBranch *br = (ssgBranch *)node;
|
ssgBranch *br = (ssgBranch *)node;
|
||||||
|
|
||||||
|
@ -480,7 +478,7 @@ ssgSaveACInner (ssgEntity *ent, FILE *save_fd)
|
||||||
|
|
||||||
/* insert one leaf in group */
|
/* insert one leaf in group */
|
||||||
static void
|
static void
|
||||||
InsertInGroup(ssgEntity *ent)
|
InsertInGroup(ssgEntity *ent, ssgRoot* GroupRoot)
|
||||||
{
|
{
|
||||||
int grIdx;
|
int grIdx;
|
||||||
struct group *curGrp;
|
struct group *curGrp;
|
||||||
|
@ -505,7 +503,7 @@ InsertInGroup(ssgEntity *ent)
|
||||||
|
|
||||||
/* insert leaves in groups */
|
/* insert leaves in groups */
|
||||||
static void
|
static void
|
||||||
InsertInner(ssgEntity *ent)
|
InsertInner(ssgEntity *ent, ssgRoot* GroupRoot)
|
||||||
{
|
{
|
||||||
/* WARNING - RECURSIVE! */
|
/* WARNING - RECURSIVE! */
|
||||||
|
|
||||||
|
@ -515,28 +513,21 @@ InsertInner(ssgEntity *ent)
|
||||||
|
|
||||||
for (int i = 0; i < br->getNumKids (); i++)
|
for (int i = 0; i < br->getNumKids (); i++)
|
||||||
{
|
{
|
||||||
InsertInner(br->getKid (i));
|
InsertInner(br->getKid (i), GroupRoot);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
InsertInGroup (ent);
|
InsertInGroup (ent, GroupRoot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
Group(tTrack *track, void *TrackHandle, ssgRoot *Root)
|
Group(tTrack *track, void *TrackHandle, ssgRoot *Root, ssgRoot *GroupRoot)
|
||||||
{
|
{
|
||||||
tdble Margin;
|
tdble Margin;
|
||||||
|
|
||||||
if (GroupRoot)
|
|
||||||
{
|
|
||||||
delete (GroupRoot);
|
|
||||||
}
|
|
||||||
|
|
||||||
GroupRoot = new ssgRoot();
|
|
||||||
|
|
||||||
Margin = GfParmGetNum(TrackHandle, TRK_SECT_TERRAIN, TRK_ATT_BMARGIN, nullptr, 100.0);
|
Margin = GfParmGetNum(TrackHandle, TRK_SECT_TERRAIN, TRK_ATT_BMARGIN, nullptr, 100.0);
|
||||||
GroupSize = GfParmGetNum(TrackHandle, TRK_SECT_TERRAIN, TRK_ATT_GRPSZ, nullptr, 100.0);
|
GroupSize = GfParmGetNum(TrackHandle, TRK_SECT_TERRAIN, TRK_ATT_GRPSZ, nullptr, 100.0);
|
||||||
XGroupOffset = track->min.x - Margin;
|
XGroupOffset = track->min.x - Margin;
|
||||||
|
@ -553,7 +544,7 @@ Group(tTrack *track, void *TrackHandle, ssgRoot *Root)
|
||||||
|
|
||||||
Groups = (struct group *)calloc(GroupNb, sizeof (struct group));
|
Groups = (struct group *)calloc(GroupNb, sizeof (struct group));
|
||||||
|
|
||||||
InsertInner(Root);
|
InsertInner(Root, GroupRoot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -631,7 +622,9 @@ GenerateObjects(tTrack *track, void *TrackHandle, void *CfgHandle, FILE *save_fd
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Group(track, TrackHandle, Root);
|
ssgRoot *GroupRoot = new ssgRoot();
|
||||||
|
|
||||||
|
Group(track, TrackHandle, Root, GroupRoot);
|
||||||
|
|
||||||
const char *extName = GfParmGetStr(CfgHandle, "Files", "object", "obj");
|
const char *extName = GfParmGetStr(CfgHandle, "Files", "object", "obj");
|
||||||
sprintf(buf, "%s-%s-%d.ac", outputFile.c_str(), extName, index);
|
sprintf(buf, "%s-%s-%d.ac", outputFile.c_str(), extName, index);
|
||||||
|
@ -644,7 +637,8 @@ GenerateObjects(tTrack *track, void *TrackHandle, void *CfgHandle, FILE *save_fd
|
||||||
ssgSaveACInner(GroupRoot, save_fd);
|
ssgSaveACInner(GroupRoot, save_fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
delete (Root);
|
delete Root;
|
||||||
|
delete GroupRoot;
|
||||||
} while (!GfParmListSeekNext(TrackHandle, path));
|
} while (!GfParmListSeekNext(TrackHandle, path));
|
||||||
|
|
||||||
delete TrackRoot;
|
delete TrackRoot;
|
||||||
|
|
Loading…
Reference in a new issue