Exemplo n.º 1
0
void tDxfExport2::func(QString fName, tModel* m)
{
    DL_Codes::version exportVersion = DL_Codes::AC1015;
    dw = dxf.out(fName.toStdString().data(), exportVersion);
    if (dw==NULL) {
        printf("Cannot open file 'myfile.dxf' for writing.");
        // abort function e.g. with return
    }

    //Prepare:
    writeHeader();

    dw->sectionTables();
    {//Initial Tables
        //a standard viewport
        dxf.writeVPort(*dw);

        //the linetypes
        writeDefaultLineTypes();

        //all our jr-Layers
        writeLayers(m);

        writeDefaultTables();
        writeDimentsions();

        //Declare Blocks
        dxf.writeBlockRecord(*dw);
        //if there are further blocks in future...
        //dxf.writeBlockRecord(*dw, "myblock2");
        dw->tableEnd();
    }

    //Write Blocks
    dw->sectionBlocks();
    writeDefaultBlocks();


    // The Entities:
    writeEntities(m);

    //Finalize:
    dxf.writeObjects(*dw);
    dxf.writeObjectsEnd(*dw);


    dw->dxfEOF();
    dw->close();
    delete dw;
}
Exemplo n.º 2
0
Arquivo: io.c Projeto: Almamu/portalDS
void writeMapEditor(editorRoom_struct* er, const char* str)
{
	if(!er)return;

	FILE* f=fopen(str,"wb+");
	// if(!f)return;

	mapHeader_struct h=blankHeader;
	writeHeader(&h,f);

	room_struct r;
	lightingData_struct* ld=&r.lightingData;
	initRoom(&r, 0, 0, vect(0,0,0));

	rectangleList_struct sludgeList;
	r.rectangles=generateOptimizedRectangles(er->blockArray, &sludgeList);
	generateLightsFromEntities();
	// generateLightmaps(&r, ld);
	generateVertexLighting(&r, ld);

	h.dataPosition=ftell(f);
		u8* compressed=compressBlockArray(er->blockArray, &h.dataSize);	// decompress(compressed, er->blockArray, RLE);
		if(!compressed){return;} //TEMP : clean up first !
		NOGBA("DATASIZE %d",h.dataSize);
		fwrite(compressed,sizeof(u8),h.dataSize*2,f);
		free(compressed);

	h.rectanglesPosition=ftell(f);
		writeRectangleList(&r.rectangles, f);

	h.lightPosition=ftell(f);
		writeLightingData(ld, f);

	h.entityPosition=ftell(f);
		writeEntities(f);

	h.sludgePosition=ftell(f);
		writeRectangleList(&sludgeList, f);

	writeHeader(&h,f);

	//empty sludgelist here
	while(sludgeList.num)popRectangle(&sludgeList);

	freeRoom(&r);
	fclose(f);
}
Exemplo n.º 3
0
int QgsDxfExport::writeToFile( QIODevice* d )
{
  if ( !d )
  {
    return 1;
  }

  if ( !d->isOpen() && !d->open( QIODevice::WriteOnly ) )
  {
    return 2;
  }

  mTextStream.setDevice( d );

  writeHeader();
  writeTables();
  writeBlocks();
  writeEntities();
  writeEndFile();
  return 0;
}
Exemplo n.º 4
0
void LC_MakerCamSVG::writeLayer(RS_Document* document, RS_Layer* layer) {

    if (writeInvisibleLayers || !layer->isFrozen()) {

        if (writeConstructionLayers || !layer->isConstruction()) {

            RS_DEBUG->print("RS_MakerCamSVG::writeLayer: Writing layer with name '%s'",
                            qPrintable(layer->getName()));

            xmlWriter->addElement("g", NAMESPACE_URI_SVG);

            xmlWriter->addAttribute("layername", qPrintable(layer->getName()), NAMESPACE_URI_LC);
            xmlWriter->addAttribute("is_locked", (layer->isLocked() ? "true" : "false"), NAMESPACE_URI_LC);
            xmlWriter->addAttribute("is_construction", (layer->isConstruction() ? "true" : "false"), NAMESPACE_URI_LC);

            if (layer->isFrozen())
            {
                xmlWriter->addAttribute("style", "display: none;");
            }

            xmlWriter->addAttribute("fill", "none");
            xmlWriter->addAttribute("stroke", "black");
            xmlWriter->addAttribute("stroke-width", "1");

            writeEntities(document, layer);

            xmlWriter->closeElement();
        }
        else {

            RS_DEBUG->print("RS_MakerCamSVG::writeLayer: Omitting construction layer with name '%s'",
                            qPrintable(layer->getName()));
        }
    }
    else {

        RS_DEBUG->print("RS_MakerCamSVG::writeLayer: Omitting invisible layer with name '%s'",
                        qPrintable(layer->getName()));
    }
}