void drawPoint(point p, double size) { glBegin(GL_POLYGON); glVertex2d(p.getX()-size, p.getY()-size); glVertex2d(p.getX()-size, p.getY()+size); glVertex2d(p.getX()+size, p.getY()+size); glVertex2d(p.getX()+size, p.getY()-size); glEnd(); }
void drawPoint(point p) { double size = 0.02*(1 - p.abs2()); if (size * screenSize / 2 < 0.3) return; glBegin(GL_POLYGON); glVertex2d(p.getX()-size, p.getY()-size); glVertex2d(p.getX()-size, p.getY()+size); glVertex2d(p.getX()+size, p.getY()+size); glVertex2d(p.getX()+size, p.getY()-size); glEnd(); }
void dx11render::renderLine(const point& begin, const point& end, const color& col) { if( m_device == NULL ) return; UINT viewportNumber = 1; D3D11_VIEWPORT vp; m_deviceContext->RSGetViewports( &viewportNumber, &vp ); float xx0 = 2.0f * ( begin.getX() - 0.5f ) / vp.Width - 1.0f; float yy0 = 1.0f - 2.0f * ( begin.getY() - 0.5f ) / vp.Height; float xx1 = 2.0f * ( end.getX() - 0.5f ) / vp.Width - 1.0f; float yy1 = 1.0f - 2.0f * ( end.getY() - 0.5f ) / vp.Height; COLOR_VERTEX* v = NULL; D3D11_MAPPED_SUBRESOURCE mapData; if( FAILED( m_deviceContext->Map( m_pVertexBuffer, NULL, D3D11_MAP_WRITE_DISCARD, NULL, &mapData ) ) ) return; v = ( COLOR_VERTEX* ) mapData.pData; v[0].Position.x = xx0; v[0].Position.y = yy0; v[0].Position.z = 0; v[0].Color = col.toD3DXCOLOR(); v[1].Position.x = xx1; v[1].Position.y = yy1; v[1].Position.z = 0; v[1].Color = col.toD3DXCOLOR(); m_deviceContext->Unmap( m_pVertexBuffer, NULL ); m_deviceContext->IASetInputLayout( m_pInputLayout ); UINT Stride = sizeof( COLOR_VERTEX ); UINT Offset = 0; m_deviceContext->IASetVertexBuffers( 0, 1, &m_pVertexBuffer, &Stride, &Offset ); m_deviceContext->IASetPrimitiveTopology( D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP ); D3DX11_TECHNIQUE_DESC techDesc; if( FAILED( m_pTechnique->GetDesc( &techDesc ) ) ) { return; } for( UINT p = 0; p < techDesc.Passes; ++p ) { m_pTechnique->GetPassByIndex( p )->Apply( 0, m_deviceContext ); m_deviceContext->Draw( 2, 0 ); } }
/*cubeCol* joueur::getCube() { return &collision; }*/ void joueur::miseAjour(point newPosition, uint16_t newAngleX, uint16_t newAngleY, uint8_t newGaz, uint8_t newAxeX, uint8_t newAxeY, float newVitesse) { if(newPosition.getX() > -251 && newPosition.getX() < 251 && newPosition.getY() > -251 && newPosition.getY() < 251 && newPosition.getZ() > -251 && newPosition.getZ() < 251) { position = newPosition; } if(newAngleX < 361) { angleX = newAngleX; } if(newAngleY < 361) { angleY = newAngleY; } if(newGaz == 0 || newGaz == 1) { gaz = newGaz; } if(newAxeX == 0 || newAxeX == 1 || newAxeX == 2 ) { axeX = newAxeX; } if(newAxeY == 0 || newAxeY == 1 || newAxeY == 2 ) { axeY = newAxeY; } if(newVitesse >= 0 && newVitesse <= vitesseMax) { vitesse = newVitesse; } }
bool validPosition(point p, int width, int height, Obstacle obstacles[], int numObstacles) { if(!((0<=p.getX()) && (p.getX()<width) && (0<=p.getY()) && (p.getY()<height))) { return false; } for(int i=0; i < numObstacles; i++) { Obstacle o = obstacles[i]; if((o.x1 <= p.getX()) && (p.getX() <= o.x2) && (o.y1 <= p.getY()) && (p.getY() <= o.y2)) { // cout << o.x1 << " " << p.getX() << " " << o.x2 << endl; // cout << o.y1 << " " << p.getY() << " " << o.y2 << endl; return false; } } return true; }
Ship::Ship(point originPoint, direction o, int l) { origin = originPoint; orientation = o; length = l; lencopy = length; hits = 0; points.add(originPoint); if (orientation == HORIZONTAL) { while((lencopy - 1) > 0) { points.add((originPoint.getX() + 1), originPoint.getY) lencopy -= 1; } } else { while((lencopy - 1) > 0) { points.add(originPoint.getX(), (originPoint.getY()+1)) lencopy -= 1; } } }
void update(point changeCell) { double dCell[] = {changeCell.getX(),changeCell.getY(),changeCell.getZ()}; if(dCell[0] <= length && dCell[1] <= width && dCell[2] <= height) { //find the node in the k-tree with the same location Node *getN = mesh.search(mesh.getRoot(),dCell); //update everything else getN->cell=changeCell; } }
PlayerShip::PlayerShip(const point& origin, direction dir, int len, Player *parent) : Ship(origin, dir, len) { p = parent; co_x = origin.getX(); co_y = origin.getY(); length = len; d = dir; }
bool databaseConnector::isAccessable( point& p ) { sql::ResultSet* res= stmt->executeQuery ( "SELECT count(id) FROM `polygon` WHERE contains(`polygon`,GeomFromText('POINT("+std::to_string ( p.getX() ) + ' ' + std::to_string ( p.getY() ) + ")'));" ); if ( !res->next() ) { return false; } std::cout<<res->getInt ( 1 ); bool returns = !res->getInt ( 1 ); delete res; return returns; }
polygon polygon::hasilGeser(point delta){ return hasilGeser(delta.getX(), delta.getY()); }
size dx11render::renderText(int flags, const font *fnt, const point& p, const color& col, const std::string &fmt) { auto f = reinterpret_cast<const dx11font*>(fnt); if (!f) return size::none; int rflags = FW1_RESTORESTATE; //convert render flags to lib flags if (flags & VCenter) rflags |= FW1_VCENTER; if (flags & Center) rflags |= FW1_CENTER; if (flags & LAlign) rflags |= FW1_LEFT; if (flags & RAlign) rflags |= FW1_RIGHT; if (flags & TAlign) rflags |= FW1_TOP; if (flags & BAlign) rflags |= FW1_BOTTOM; //TODO string convert wchar_t buf[1024]; mbstowcs(buf, fmt.c_str(), fmt.length()); buf[fmt.length()] = 0; if (f->getFontWrapper()) { f->getFontWrapper()->DrawString(getDeviceContext(), buf, f->getSize(), (FLOAT)p.getX(), (FLOAT)p.getY(), col.toABGR(), rflags); } return size::none; }
bool point::operator==(const point p) const { if ((p.getX() == x_) && (p.getY() == y_)) return 1; return 0; }
bool operator== (const point &other) const { return (x == other.getX() && y == other.getY()); }
point::point(const point &point) : x_(point.getX()), y_(point.getY()) { }
double point::distance(point &p1){ return sqrt(pow((x-p1.getX()),2) + pow((y-p1.getY()),2)); }
bool compare_y(const point& lhs, const point& rhs){ return lhs.getY() <= rhs.getY(); }
void databaseConnector::setPosition( const int& vehicleId,const point& position ) { stmt->executeUpdate ( "INSERT INTO `checkpoint` (`vehicle_id`, `time`, `position`) VALUES ('" + std::to_string ( vehicleId ) + "', CURRENT_TIMESTAMP, GeomFromText('POINT(" + std::to_string ( position.getX() ) + " " + std::to_string ( position.getY() ) + ")') );" ); }
void glVertex2dp(point p) { glVertex2d(p.getX(), p.getY()); }
int dist(const point& lhs, const point& rhs){ return (lhs.getX() - rhs.getX()) * (lhs.getX() - rhs.getX()) + (lhs.getY() - rhs.getY()) * (lhs.getY() - rhs.getY()); }
void databaseConnector::setPosition( const std::string& vehicleName,const point& position) { stmt->executeUpdate ( "INSERT INTO `checkpoint` (`vehicle_id`, `time`, `position`) VALUES ((SELECT id FROM `vehicle` WHERE name = '" + vehicleName + "'), CURRENT_TIMESTAMP, GeomFromText('POINT(" + std::to_string ( position.getX() ) + " " + std::to_string ( position.getY() ) + ")') );" ); }
double joueur::distance(point a) { double distanceXZ = sqrt(double(a.getX()*a.getX()) + double(a.getZ()*a.getZ())); return sqrt(distanceXZ + double(a.getY() * a.getY())); }