File: path.cc

package info (click to toggle)
glbsp 2.24-8
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,220 kB
  • sloc: cpp: 10,762; ansic: 6,953; makefile: 121; sh: 14
file content (67 lines) | stat: -rw-r--r-- 1,541 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//------------------------------------------------------------------------
//  PATH : storage for path points
//------------------------------------------------------------------------
//
//  GL-Node Viewer (C) 2004-2007 Andrew Apted
//
//  This program is free software; you can redistribute it and/or
//  modify it under the terms of the GNU General Public License
//  as published by the Free Software Foundation; either version 2
//  of the License, or (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//------------------------------------------------------------------------

// this includes everything we need
#include "defs.h"

//
// Path Constructor
//
path_c::path_c() : point_num(0), points(NULL)
{
}

//
// Path Destructor
//
path_c::~path_c()
{
  if (points)
    delete[] points;
}

//
// Path Reading
//
path_c * path_c::ReadFile(const char *filename)
{
  FILE *fp = fopen(filename, "r");

  if (! fp)
  {
    PrintWarn("Unable to open path file: %s\n", strerror(errno));
    return false;
  }

  path_c *P = new path_c();

  P->points = new int[MAX_PTS * 2];

  for (P->point_num = 0; P->point_num < MAX_PTS; P->point_num++)
  {
    int *cur_pt = P->points + (P->point_num * 2);

    if (fscanf(fp, " %d %d ", cur_pt, cur_pt+1) != 2)
      break;
  }

  fclose(fp);

  return P;
}