I'm having a problem with my struct I believe.

struct GLPoint
{
  int x;
  int y;
};

int totalmarbles = 64;
GLPoint midhold[64];

double dist(GLPoint a, GLPoint b)
{
   double distance = sqrt(pow(a.x - b.x, 2) + pow(a.y - b.y, 2));
   return distance;
}


void init(void) 
{
   glClearColor (1.0, 1.0, 1.0, 0.0);
   glShadeModel (GL_SMOOTH);
}



GLPoint mid(GLPoint A, GLPoint B)
{
   GLPoint midpt = ((A.x + B.x)/2, (A.y + B.y)/2);
   return midpt;
}

void storemids(int q, GLPoint A)
{ 
   midhold[q] = A;
}

void vertices()
{
  int total = 0;
  int x = 0; int y = 0;
  int x1, y1, x2, y2, x3, y3, x4, y4;
  x1 = x; y1 = y;
  x2 = x + 100; y2 = y;
  x3 = x + 100; y3 = y + 100;
  x4 = x; y4 = y + 100;
  GLPoint P = (x1, y1);
  GLPoint Q = (x2, y2);
  GLPoint R = (x3, y3);
  GLPoint S = (x4, y4);
  GLPoint vertices[totalmarbles];
  vertices[total] = P; vertices[total+1] = Q;
  vertices[total+2] = R; vertices[total+3] = S;
  total += 4;
  while(y < 600)
  {
    while(x <= 700)
    {
      x += 100;
      x1 = x; y1 = y;
      x2 = x + 100; y2 = y;
      x3 = x + 100; y3 = y + 100;
      x4 = x; y4 = y + 100;
      GLPoint P = (x1, y1);
      GLPoint Q = (x2, y2);
      GLPoint R = (x3, y3);
      GLPoint S = (x4, y4);
      vertices[i] = P; vertices[i+1] = Q;
      vertices[i+2] = R; vertices[i+3] = S;
      total += 4;
     }
    x = 0; y += 75;
    x1 = x; y1 = y;
    x2 = x + 100; y2 = y;
    x3 = x + 100; y3 = y + 100;
    x4 = x; y4 = y + 100;
    GLPoint P = (x1, y1);
    GLPoint Q = (x2, y2);
    GLPoint R = (x3, y3);
    GLPoint S = (x4, y4);
    vertices[i] = P; vertices[i+1] = Q;
    vertices[i+2] = R; vertices[i+3] = S;
    total += 4;
    
   }

  while(x <= 700)
   {
     x += 100; y = 700;
     x1 = x; y1 = y;
     x2 = x + 100; y2 = y;
     x3 = x + 100; y3 = y + 100;
     x4 = x; y4 = y + 100;
     GLPoint P = (x1, y1);
     GLPoint Q = (x2, y2);
     GLPoint R = (x3, y3);
     GLPoint S = (x4, y4);
     vertices[i] = P; vertices[i+1] = Q;
     vertices[i+2] = R; vertices[i+3] = S;
     total += 4;
   }

}

And here are my errors

project.cpp:34:49: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp: In function ‘void vertices()’:
project.cpp:52:22: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:53:22: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:54:22: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:55:22: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:69:26: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:70:26: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:71:26: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:72:26: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:73:16: error: ‘i’ was not declared in this scope
project.cpp:82:24: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:83:24: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:84:24: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:85:24: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:86:14: error: ‘i’ was not declared in this scope
project.cpp:99:25: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:100:25: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:101:25: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:102:25: error: conversion from ‘int’ to non-scalar type ‘GLPoint’ requested
project.cpp:103:15: error: ‘i’ was not declared in this scope
project.cpp: In function ‘void drawrectangles()’:
project.cpp:114:24: error: expected primary-expression before ‘int’

Recommended Answers

All 3 Replies

You're trying to set GLPoint P, Q, R, and S to just a set of numbers in parenthesis, and your compiler doesn't know what to do with that. You're going to have to make an intializer list of setting these, or if you want a quick and dirty method of fixing it, try this:

GLPoint P = (GLPoint){x1, y1};

And so on. Also, you need to declare the variable i at the beginning of your main function, otherwise it doesn't exist.

I'll try it.
Do you mind me asking how would I go about making an initializer list? Not sure if I heard of it.

If I knew myself, I would have told you how to do it. ;)
http://www.cprogramming.com/tutorial/initialization-lists-c++.html
It's just one of those fancy C++ ways of making the code look prettier when initializing structs and classes. I've never found a use for it myself, so that's best left to somebody else.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.