Beispiel #1
0
static void displayTriple(iface::rdf_api::Triple* aTriple)
{
  std::wcout << L"Triple: Subject=";
  ObjRef<iface::rdf_api::Resource> r(aTriple->subject());
  displayNode(r);
  std::wcout << L" Predicate=";
  r = aTriple->predicate();
  displayNode(r);
  std::wcout << L" Object=";
  ObjRef<iface::rdf_api::Node> n(aTriple->object());
  displayNode(n);
  std::wcout << std::endl;
}
Beispiel #2
0
/** Get the mesh from the rectangular bounding mesh of the billboard node, which is used for node picking. */
void CC3BillboardBoundingBoxArea::populateDisplayNode()
{
	CC3Billboard* bbNode = (CC3Billboard*)m_pNode;
	bbNode->ensureBoundingMesh();
	CC3BoundingVolumeDisplayNode* dn = displayNode();
	dn->setMesh( bbNode->getMesh() );
	dn->setShouldCullBackFaces( false );	// Make it a two-sided rectangle
}
Beispiel #3
0
void displayContainer(iface::rdf_api::Container* aContainer, const std::wstring& aPrefix)
{
  try
  {
    ObjRef<iface::rdf_api::Resource> ctype(aContainer->containerType());
    std::wcout << aPrefix << "Container type = ";
    displayNode(ctype);
    std::wcout << std::endl;
  }
  catch (...) {}

  ObjRef<iface::rdf_api::NodeIterator> it(aContainer->iterateChildren());
  while (true)
  {
    ObjRef<iface::rdf_api::Node> n(it->getNextNode());
    if (n == NULL) break;
    std::wcout << aPrefix << "* ";
    displayNode(n);
    std::wcout << std::endl;
  }
}
Beispiel #4
0
void QgsGrassEdit::displayMap()
{
  QgsDebugMsg( "entered." );

  mTransform = mCanvas->getCoordinateTransform();

  // re-create pixmap - it's transparent by default
  *mPixmap = QPixmap( mCanvas->size() );
  mPixmap->fill( QColor( 0, 0, 0, 0 ) );

  QPainter *painter = new QPainter();
  painter->begin( mPixmap );

  // Display lines
  int nlines = mProvider->numLines();

  QPen pen;

  // TODO?: 2 loops, first lines, then points
  for ( int line = 1; line <= nlines; line++ )
  {
    displayElement( line, mSymb[mLineSymb[line]], mSize, painter );
  }

  // Display nodes
  int nnodes = mProvider->numNodes();

  pen.setColor( QColor( 255, 0, 0 ) );

  if ( mSymbDisplay[SYMB_NODE_1] || mSymbDisplay[SYMB_NODE_2] )
  {
    for ( int node = 1; node <= nnodes; node++ )
    {
      if ( mNodeSymb[node] == SYMB_NODE_0 )
        continue; // do not display nodes with points only
      displayNode( node, mSymb[mNodeSymb[node]], mSize, painter );
    }
  }

  painter->end();
  delete painter;

  // porting mCanvas->update();
  mCanvasEdit->update();
  mRubberBandIcon->update();
  mRubberBandLine->update();
}
Beispiel #5
0
void QgsGrassEdit::displayUpdated( void )
{
  QgsDebugMsg( "entered." );

  mTransform = mCanvas->getCoordinateTransform();
  mProjectionEnabled = ( QgsProject::instance()->readNumEntry( "SpatialRefSys", "/ProjectionsEnabled", 0 ) != 0 );

  QPainter *painter = new QPainter();
  painter->begin( mPixmap );

  // Display lines
  int nlines = mProvider->numUpdatedLines();

  for ( int i = 0; i < nlines; i++ )
  {
    int line = mProvider->updatedLine( i );
    if ( !( mProvider->lineAlive( line ) ) )
      continue;

    displayElement( line, mSymb[mLineSymb[line]], mSize, painter );
  }

  // Display nodes
  int nnodes = mProvider->numUpdatedNodes();
  for ( int i = 0; i < nnodes; i++ )
  {
    int node = mProvider->updatedNode( i );
    if ( !( mProvider->nodeAlive( node ) ) )
      continue;
    if ( mNodeSymb[node] == SYMB_NODE_0 )
      continue; // do not display nodes with points only
    displayNode( node, mSymb[mNodeSymb[node]], mSize, painter );
  }

  painter->end();
  delete painter;

  // porting mCanvas->update();
  mCanvasEdit->update();
  mRubberBandIcon->update();
  mRubberBandLine->update();
}
Beispiel #6
0
void displayTable(struct hash* HT)
{
  int i=0;
  struct node* temp;
  temp=(struct node*)malloc(sizeof(struct node));
  for(i=0;i<BKT_NUM;i++)
    {
      temp=HT[i].head;
      if(HT[i].count>0)
	{
	  printf("\nIndex %d\n",HT[i].count);
	  displayNode(temp);
	  printf("--");
	  temp=temp->next;
	}
      else
	continue;
      printf("\n");
    }
}
Beispiel #7
0
int main(int argc, char** argv)
{
	/*==================================================*/
	/* Variables */
	data d;
	int* M;

	/* GLPK */
	int *ia, *ja;
	double *ar;
	double z;
	double *x;
	int notZeroCount;

	/* Misc */
	int i, pos;

	/* Check up */
	if(argc != 2)
	{
		printf("ERROR : no data file !\n");
		exit(1);		
	}
	
	/* Initialization */
	filereader(argv[1], &d);

	if(d.nbjour < 1)
	{
		printf("Obvious...\n");
		return 0;	
	}
	
	M = (int*) malloc ((d.nbjour +1)* sizeof(int));
	M[d.nbjour] = d.d[d.nbjour];
	for (i = d.nbjour-1; i >=0; --i)
	{
		M[i] = d.d[i] + M[i+1];
	}

	/* Problem creation*/
	glp_prob *prob;
	prob = glp_create_prob();
	glp_set_prob_name(prob, "ULS");
	glp_set_obj_dir(prob, GLP_MIN);

	glp_smcp parm;
	glp_init_smcp(&parm);
	parm.msg_lev = GLP_MSG_OFF;

	glp_iocp parmip;
	glp_init_iocp(&parmip);
	parmip.msg_lev = GLP_MSG_OFF;

	/* Number of constraints : 2 * nbjour +2 */
	glp_add_rows(prob, 2*d.nbjour +2);
	for (i = 1; i <= d.nbjour; ++i)
	{
		glp_set_row_bnds(prob, i, GLP_FX, d.d[i], d.d[i]);
	}
	for (i = d.nbjour+1; i <= 2*d.nbjour; ++i)
	{
		glp_set_row_bnds(prob, i, GLP_LO, 0, 0);
	}	
	glp_set_row_bnds(prob, 2*d.nbjour+1, GLP_FX, 0.0, 0.0);
	glp_set_row_bnds(prob, 2*d.nbjour+2, GLP_FX, 0.0, 0.0);

	/* Number of variables : 3*(nbjour +1)*/
	glp_add_cols(prob, 3*(d.nbjour+1));
	for (i = 0; i < d.nbjour +1; ++i)
	{
		glp_set_col_bnds(prob, i*3 +1, GLP_LO, 0.0, 0.0);
		glp_set_col_bnds(prob, i*3 +2, GLP_LO, 0.0, 0.0);
		glp_set_col_bnds(prob, i*3 +3, GLP_DB, 0.0, 1.0);
	}
	for (i = 1; i <= 3*(d.nbjour+1); ++i)
	{
		glp_set_col_kind(prob, i, GLP_CV);
	}

	/* Coefficients of the economic function */
	glp_set_obj_coef(prob, 1, 0);
	glp_set_obj_coef(prob, 2, 0);
	glp_set_obj_coef(prob, 3, 0);
	for (i = 1; i <=d.nbjour; ++i)
	{
		glp_set_obj_coef(prob, 3*i+1, d.p[i]);
		glp_set_obj_coef(prob, 3*i+2, d.h[i]);
		glp_set_obj_coef(prob, 3*i+3, d.f[i]);
	}

	/* Matrix */
	notZeroCount = 5 * d.nbjour + 2;

	ia = (int *) malloc ((1+notZeroCount) * sizeof(int));
	ja = (int *) malloc ((1+notZeroCount) * sizeof(int));	
	ar = (double *) malloc ((1+notZeroCount) * sizeof(double));

	pos = 1;
	for (i = 1; i <= d.nbjour; ++i)
	{
		ia[pos] = i;
		ia[pos+1] = i;
		ia[pos+2] = i;

		ja[pos] = i*3-1;
		ja[pos+1] = i*3+1;
		ja[pos+2] = i*3+2;

		ar[pos] = 1.0;
		ar[pos+1] = 1.0;
		ar[pos+2] = -1.0;
			
		pos += 3;
	}

	for (i = 1; i <= d.nbjour; ++i)
	{
		ia[pos] = i + d.nbjour;
		ia[pos+1] = i + d.nbjour;

		ja[pos] = i*3+1;
		ja[pos+1] = i*3+3;

		ar[pos] = -1.0;
		ar[pos+1] = M[i];
			
		pos += 2;
	}
	
	ia[pos] = 2*d.nbjour +1;
	ia[pos+1] = 2 * d.nbjour+2;

	ja[pos] = 3*(d.nbjour+1)-1;
	ja[pos+1] = 2;

	ar[pos] = 1.0;
	ar[pos+1] = 1.0;

	pos += 2;

	glp_load_matrix(prob, notZeroCount, ia, ja , ar);

	/* Writing in a file */
	glp_write_lp(prob, NULL, "ULS.lp");

	/* Branch and bound */
	node* res = branchAndBound(prob);
	displayNode(res);
}
void parseFile(char * fileName)
{
	char type;
	char ch;
	char buffer[1000];
	char * name;
	char * data;
	int state;
	int error;
	int size;
	int i;
	FILE * f;
	node * head;
	node * nav;

	type = 0;
	ch = 1;
	name = NULL;
	data = NULL;
	state = 0;
	size = 0;
	error = 0;
	i = 0;
	f = NULL;
	head = NULL;
	nav = NULL;

	if(fileName == NULL)
	{
		printf("Error: No filename given.\n");
		return;
	}

	f = fopen(fileName, "r");
	if(f == NULL)
	{
		printf("Error: Could not open file.\n");
		return;
	}

	for(i = 0; i < 1000; i++)
	{
		buffer[i] = 0;
	}

	while(ch != EOF)
	{
		/*printf("%c", ch);*/
		ch = fgetc(f);

		if(isalpha(ch)||isnumber(ch))
		{
			/*printf("%c", ch);*/
			buffer[size] = ch;
			size++;
			if(state == 0)
			{
				state = 1;
			}
		}
		else if(ch == ' ' && state == 1)
		{
			/*printf("type = %s\n", buffer);*/
			type = getType(buffer, size);
			if(type == 0)
			{
				printf("Error: Invalid type.\n");
				return;
			}

			state = 2;
			size = 0;
			for(i = 0; i < 1000; i++)
			{
				buffer[i] = 0;
			}
		}
		else if(ch == '=')
		{
			/*printf("name = %s\n", buffer);*/
			if(type == 0)
			{
				printf("Error: Invalid type.\n");
				return;
			}
			name = getName(buffer, size);
			if(name == NULL)
			{
				printf("Error: Invalid Name.\n");
				return;
			}
			/*printf("name = %s\n", name);*/

			state = 3;
			size = 0;
			for(i = 0; i < 1000; i++)
			{
				buffer[i] = 0;
			}
		}
		else if(ch == ';')
		{
			/*printf("data = %s\n", buffer);*/
			if(name == NULL)
			{
				printf("Error: Invalid name.\n");
				return;
			}
			if(type == 0)
			{
				printf("Error: Invalid type.\n");
				return;
			}

			data = getData(buffer, size);
			if(data == NULL)
			{
				printf("Error: Invalid data.\n");
				free(name);
				return;
			}
			/*printf("data = %s\n", data);*/

			if(head == NULL)
			{
				head = createNode(name, data, type);
				if(head == NULL)
				{
					printf("Error: Could not create head.\n");
					return;
				}
				nav = head;
			}
			else
			{
				nav->next = createNode(name, data, type);
				if(nav->next == NULL)
				{
					printf("Error: Could not create node.\n");
					return;
				}
				nav = nav->next;
			}

			state = 0;
			size = 0;
			for(i = 0; i < 1000; i++)
			{
				buffer[i] = 0;
			}

			free(name);
			free(data);
			type = 0;
			name = NULL;
			data = NULL;
		}
		else
		{

		}
	}

	if(head == NULL)
	{
		return;
	}

	printf("Displaying data structure contents\n");
	printf("==================================\n");

	nav = head;
	while(nav->next != NULL)
	{
		displayNode(nav);
		nav = nav->next;
	}
	displayNode(nav);

	printf("Destroying DataStructure.\n");
	error = destroyDataStructure(head);
	printf("Destruction Errors = %d.\n", error);

	printf("\n");
}