Пример #1
0
int main (int argc, char **argv)
{
    int cnt;

    if (argc < 4 || argc > 5) {
        Usage();
        return 1;
    }

    std::string etable = argv[1];
    std::string vtable = argv[2];
    std::string rtable = argv[3];

    std::string fnames    = etable + ".osrm.names";
    std::string fosrm     = etable + ".osrm";
    std::string frestrict = etable + ".osrm.restrictions";

    const char *dbconn    = "dbname=osrm_test user=postgres host=localhost";
    if (argc == 5) dbconn = argv[4];


    try {
        pqxx::connection conn( dbconn );
        pqxx::work txn(conn);
        txn.exec( "set client_min_messages to warning" );
        txn.commit();

        std::cout << "  Creating names table ...\n";
        createNames( conn, etable );

        std::cout << "  Writing " << fnames << " file ... ";
        cnt = writeNames( conn, fnames, etable );
        std::cout << cnt << " records\n";

        std::ofstream out( fosrm.c_str(), std::ios::out | std::ios::binary );

        writeHeader( out );

        std::cout << "  Writing vertices to " << fosrm << " file ... ";
        cnt = writeVertices( conn, out, vtable );
        std::cout << cnt << " records\n";

        std::cout << "  Writing edges to " << fosrm << " file ... ";
        cnt = writeEdges( conn, out, etable );
        std::cout << cnt << " records\n";

        out.close();

        std::cout << "  Writing restrictions to " << frestrict << " file ... ";
        cnt = writeRestrictions( conn, frestrict, rtable );
        std::cout << cnt << " records\n";

        std::cout << "  Done!\n";
    }
    catch (const std::exception &e) {
        std::cerr << e.what() << std::endl;
        return 1;
    }
}
Пример #2
0
void G3D::write(AbstractWriter& writer, const GeometrySoA& geometry, uint32_t vertexType) {
    if (writer.isOpen()) {
        if (vertexType == SoA) {
            writeHeader(writer, geometry.info);
            writeContent(writer, geometry);
        } else if (vertexType == AoS) {
            writeHeader(writer, geometry.info, &vertexType);
            writeIndices(writer, geometry.indices, geometry.info);
            auto vertices = convertVertices(geometry.vertexAttributes, geometry.info);
            writeVertices(writer, vertices, geometry.info);
        }
    }
}
Пример #3
0
//----[  update  ]-------------------------------------------------------------
void Fluid::update(MapManager* map,
                   int center_x,
                   int center_y,
                   const TileVisibility* visibility,
                   bool visible_areas_valid[2],
                   const VisibleTilesRect::Area new_visible_areas[2]) {

  bool fluid_changed_or_is_visible = false;
  if (visible_areas_valid[0]) {
    fluid_changed_or_is_visible = updateCachedTextures(false, map, &new_visible_areas[0]);
  }
  if (visible_areas_valid[1]) {
    fluid_changed_or_is_visible |= updateCachedTextures(fluid_changed_or_is_visible,
                                                        map,
                                                        &new_visible_areas[1]);
  }

  // For much of the map there is no fluid at all.  If this is the case, there is
  // no need to lock the buffers, update colors or do any other processing.
  if (fluid_changed_or_is_visible) {
    int first_visible_column = center_x - VISIBLE_HORIZONTAL_EXTENT;
    int first_visible_row = center_y - VISIBLE_VERTICAL_EXTENT;

    // Rewrite the fluid's colors based on which can be seen
    TerrainVertex* vertices = NULL;
    if (lockVB(first_visible_column,
               first_visible_row,
               visibility,
               &vertices)) {
      if (visible_areas_valid[0]) writeVertices(&new_visible_areas[0], vertices);
      if (visible_areas_valid[1]) writeVertices(&new_visible_areas[1], vertices);
      unlockVB();
    }

    // Write the batches
    updateIB(first_visible_column, first_visible_row, visibility);
  }
}
Пример #4
0
int main(int argc, char** argv) {
	Point bottomPoint = Point(-3.0, -3.0, -3.0);
	Point topPoint = Point(3.0, 3.0, 3.0);
	
	float res = .2;
	Grid g = Grid(topPoint, bottomPoint, res);

	std::vector< std::vector <Point> > trianglesList;
	std::vector< std::vector<int> > rotations = createRotationTable();

	std::cout << "Processing of each cubes ... ";
	
	for (int i = 0; i < g.listOfCubes.size(); i++) {
		int f = (int)(((float) i)*100.0/((float) g.listOfCubes.size()));
		if (i%1000 == 0)
			std::cout << f << "%... ";

		std::vector< std::vector <Point> > newTriangles = cubeProcessing(g.listOfCubes[i], rotations, res);

		if (newTriangles.size() != 0)
			trianglesList.insert(trianglesList.end(), newTriangles.begin(), newTriangles.end());
	}
	std::cout << "done!" << std::endl;	

	int nbVertices = 3 * trianglesList.size();
	int nbTriangles = trianglesList.size();

	std::ofstream plyFile;
  	plyFile.open("mcResult.ply");
  	writeHeader(plyFile, nbVertices, nbTriangles);
  	writeVertices(plyFile, trianglesList);
  	writeTriangles(plyFile, nbTriangles);
  	plyFile.close();
  	

	return 0;
}
Пример #5
0
void G3D::write(const std::string & file, const GeometryAoS * const geometry, const uint32_t vertexType)
{
	std::fstream fs;
	fs.open(file.c_str(), std::fstream::out | std::fstream::binary | std::fstream::trunc);

	if (fs.is_open())
	{
		if (vertexType == AoS) 
		{
			writeHeader(fs, geometry->info);
			writeContent(fs, *geometry);
		}
		else if (vertexType == SoA)
		{
			writeHeader(fs, geometry->info, &vertexType);
			writeIndices(fs, geometry->indices, geometry->info);
			std::vector<float*> vertexAttributes;
			convertVertices(geometry->vertices, vertexAttributes, geometry->info);
			writeVertices(fs, vertexAttributes, geometry->info);
			cleanVertices(vertexAttributes);
		}
		fs.close();
	}
}
Пример #6
0
void G3D::writeContent(std::fstream & fs, const GeometryAoS & geometry)
{
	writeIndices(fs, geometry.indices, geometry.info);
	writeVertices(fs, geometry.vertices, geometry.info);
}
Пример #7
0
void serializeFBX(FILE_INTERFACE *fph,MeshSystem *ms)
{

	fi_fprintf(fph,"; FBX 6.1.0 project file\r\n");
	fi_fprintf(fph,"; Copyright (C) 1997-2008 Autodesk Inc. and/or its licensors.\r\n");
	fi_fprintf(fph,"; All rights reserved.\r\n");
	fi_fprintf(fph,"; ----------------------------------------------------\r\n");
	fi_fprintf(fph,"\r\n");
	fi_fprintf(fph,"FBXHeaderExtension:  {\r\n");
	fi_fprintf(fph,"    FBXHeaderVersion: 1003\r\n");
	fi_fprintf(fph,"    FBXVersion: 6100\r\n");
	fi_fprintf(fph,"    CreationTimeStamp:  {\r\n");
	fi_fprintf(fph,"        Version: 1000\r\n");
	fi_fprintf(fph,"        Year: 2009\r\n");
	fi_fprintf(fph,"        Month: 12\r\n");
	fi_fprintf(fph,"        Day: 3\r\n");
	fi_fprintf(fph,"        Hour: 18\r\n");
	fi_fprintf(fph,"        Minute: 6\r\n");
	fi_fprintf(fph,"        Second: 18\r\n");
	fi_fprintf(fph,"        Millisecond: 532\r\n");
	fi_fprintf(fph,"    }\r\n");
	fi_fprintf(fph,"    Creator: \"FBX SDK/FBX Plugins version 2010.2\"\r\n");
	fi_fprintf(fph,"    OtherFlags:  {\r\n");
	fi_fprintf(fph,"        FlagPLE: 0\r\n");
	fi_fprintf(fph,"    }\r\n");
	fi_fprintf(fph,"}\r\n");
	fi_fprintf(fph,"CreationTime: \"2009-12-03 18:06:18:532\"\r\n");
	fi_fprintf(fph,"Creator: \"FBX SDK/FBX Plugins build 20090731\"\r\n");
	fi_fprintf(fph,"\r\n");
	fi_fprintf(fph,"; Document Description\r\n");
	fi_fprintf(fph,";------------------------------------------------------------------\r\n");
	fi_fprintf(fph,"\r\n");
	fi_fprintf(fph,"Document:  {\r\n");
	fi_fprintf(fph,"    Name: \"\"\r\n");
	fi_fprintf(fph,"}\r\n");
	fi_fprintf(fph,"\r\n");
	fi_fprintf(fph,"; Document References\r\n");
	fi_fprintf(fph,";------------------------------------------------------------------\r\n");
	fi_fprintf(fph,"\r\n");
	fi_fprintf(fph,"References:  {\r\n");
	fi_fprintf(fph,"}\r\n");
	fi_fprintf(fph,"\r\n");
	fi_fprintf(fph,"; Object definitions\r\n");
	fi_fprintf(fph,";------------------------------------------------------------------\r\n");
	fi_fprintf(fph,"\r\n");
	fi_fprintf(fph,"Definitions:  {\r\n");
	fi_fprintf(fph,"    Version: 100\r\n");
	fi_fprintf(fph,"    Count: 5\r\n");
	fi_fprintf(fph,"    ObjectType: \"Model\" {\r\n");
	fi_fprintf(fph,"        Count: 2\r\n");
	fi_fprintf(fph,"    }\r\n");
	fi_fprintf(fph,"    ObjectType: \"Material\" {\r\n");
	fi_fprintf(fph,"        Count: 1\r\n");
	fi_fprintf(fph,"    }\r\n");
	fi_fprintf(fph,"    ObjectType: \"SceneInfo\" {\r\n");
	fi_fprintf(fph,"        Count: 1\r\n");
	fi_fprintf(fph,"    }\r\n");
	fi_fprintf(fph,"    ObjectType: \"GlobalSettings\" {\r\n");
	fi_fprintf(fph,"        Count: 1\r\n");
	fi_fprintf(fph,"    }\r\n");
	fi_fprintf(fph,"}\r\n");
	fi_fprintf(fph,"\r\n");
	fi_fprintf(fph,"; Object properties\r\n");
	fi_fprintf(fph,";------------------------------------------------------------------\r\n");
	fi_fprintf(fph,"\r\n");
	fi_fprintf(fph,"Objects:  {\r\n");
	fi_fprintf(fph,"    Model: \"Model::aconcave_root\", \"Null\" {\r\n");
	fi_fprintf(fph,"        Version: 232\r\n");
	fi_fprintf(fph,"        Properties60:  {\r\n");
	fi_fprintf(fph,"            Property: \"QuaternionInterpolate\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationOffset\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"RotationPivot\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingOffset\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingPivot\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationActive\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMin\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMax\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMinX\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMinY\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMinZ\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMaxX\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMaxY\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMaxZ\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationOrder\", \"enum\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationSpaceForLimitOnly\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationStiffnessX\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationStiffnessY\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationStiffnessZ\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"AxisLen\", \"double\", \"\",10\r\n");
	fi_fprintf(fph,"            Property: \"PreRotation\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"PostRotation\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"RotationActive\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMin\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMax\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMinX\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMinY\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMinZ\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMaxX\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMaxY\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMaxZ\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"InheritType\", \"enum\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingActive\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMin\", \"Vector3D\", \"\",1,1,1\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMax\", \"Vector3D\", \"\",1,1,1\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMinX\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMinY\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMinZ\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMaxX\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMaxY\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMaxZ\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"GeometricTranslation\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"GeometricRotation\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"GeometricScaling\", \"Vector3D\", \"\",1,1,1\r\n");
	fi_fprintf(fph,"            Property: \"MinDampRangeX\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MinDampRangeY\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MinDampRangeZ\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MaxDampRangeX\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MaxDampRangeY\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MaxDampRangeZ\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MinDampStrengthX\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MinDampStrengthY\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MinDampStrengthZ\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MaxDampStrengthX\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MaxDampStrengthY\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MaxDampStrengthZ\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"PreferedAngleX\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"PreferedAngleY\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"PreferedAngleZ\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"LookAtProperty\", \"object\", \"\"\r\n");
	fi_fprintf(fph,"            Property: \"UpVectorProperty\", \"object\", \"\"\r\n");
	fi_fprintf(fph,"            Property: \"Show\", \"bool\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"NegativePercentShapeSupport\", \"bool\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"DefaultAttributeIndex\", \"int\", \"\",-1\r\n");
	fi_fprintf(fph,"            Property: \"Freeze\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"LODBox\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"Lcl Translation\", \"Lcl Translation\", \"A+\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"Lcl Rotation\", \"Lcl Rotation\", \"A+\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"Lcl Scaling\", \"Lcl Scaling\", \"A+\",1,1,1\r\n");
	fi_fprintf(fph,"            Property: \"Visibility\", \"Visibility\", \"A+\",1\r\n");
	fi_fprintf(fph,"        }\r\n");
	fi_fprintf(fph,"        MultiLayer: 0\r\n");
	fi_fprintf(fph,"        MultiTake: 1\r\n");
	fi_fprintf(fph,"        Shading: Y\r\n");
	fi_fprintf(fph,"        Culling: \"CullingOff\"\r\n");
	fi_fprintf(fph,"        TypeFlags: \"Null\"\r\n");
	fi_fprintf(fph,"    }\r\n");
	fi_fprintf(fph,"    Model: \"Model::Box01\", \"Mesh\" {\r\n");
	fi_fprintf(fph,"        Version: 232\r\n");
	fi_fprintf(fph,"        Properties60:  {\r\n");
	fi_fprintf(fph,"            Property: \"QuaternionInterpolate\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationOffset\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"RotationPivot\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingOffset\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingPivot\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationActive\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMin\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMax\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMinX\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMinY\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMinZ\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMaxX\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMaxY\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"TranslationMaxZ\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationOrder\", \"enum\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationSpaceForLimitOnly\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationStiffnessX\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationStiffnessY\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationStiffnessZ\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"AxisLen\", \"double\", \"\",10\r\n");
	fi_fprintf(fph,"            Property: \"PreRotation\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"PostRotation\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"RotationActive\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMin\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMax\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMinX\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMinY\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMinZ\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMaxX\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMaxY\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"RotationMaxZ\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"InheritType\", \"enum\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingActive\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMin\", \"Vector3D\", \"\",1,1,1\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMax\", \"Vector3D\", \"\",1,1,1\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMinX\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMinY\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMinZ\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMaxX\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMaxY\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"ScalingMaxZ\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"GeometricTranslation\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"GeometricRotation\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"GeometricScaling\", \"Vector3D\", \"\",1,1,1\r\n");
	fi_fprintf(fph,"            Property: \"MinDampRangeX\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MinDampRangeY\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MinDampRangeZ\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MaxDampRangeX\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MaxDampRangeY\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MaxDampRangeZ\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MinDampStrengthX\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MinDampStrengthY\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MinDampStrengthZ\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MaxDampStrengthX\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MaxDampStrengthY\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"MaxDampStrengthZ\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"PreferedAngleX\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"PreferedAngleY\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"PreferedAngleZ\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"LookAtProperty\", \"object\", \"\"\r\n");
	fi_fprintf(fph,"            Property: \"UpVectorProperty\", \"object\", \"\"\r\n");
	fi_fprintf(fph,"            Property: \"Show\", \"bool\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"NegativePercentShapeSupport\", \"bool\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"DefaultAttributeIndex\", \"int\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"Freeze\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"LODBox\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"Lcl Translation\", \"Lcl Translation\", \"A+\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"Lcl Rotation\", \"Lcl Rotation\", \"A+\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"Lcl Scaling\", \"Lcl Scaling\", \"A+\",1,1,1\r\n");
	fi_fprintf(fph,"            Property: \"Visibility\", \"Visibility\", \"A+\",1\r\n");
	fi_fprintf(fph,"            Property: \"Color\", \"ColorRGB\", \"N\",0.8,0.8,0.8\r\n");
	fi_fprintf(fph,"            Property: \"BBoxMin\", \"Vector3D\", \"N\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"BBoxMax\", \"Vector3D\", \"N\",0,0,0\r\n");
	fi_fprintf(fph,"        }\r\n");
	fi_fprintf(fph,"        MultiLayer: 0\r\n");
	fi_fprintf(fph,"        MultiTake: 1\r\n");
	fi_fprintf(fph,"        Shading: Y\r\n");
	fi_fprintf(fph,"        Culling: \"CullingOff\"\r\n");

	if ( ms->mMeshCount )
	{
		Mesh *mesh = ms->mMeshes[0];
		writeVertices(fph,mesh);
		writePolygonVertexIndex(fph,mesh);

		fi_fprintf(fph,"        GeometryVersion: 124\r\n");

		writeUV(fph,mesh);
	}


	fi_fprintf(fph,"        LayerElementMaterial: 0 {\r\n");
	fi_fprintf(fph,"            Version: 101\r\n");
	fi_fprintf(fph,"            Name: \"\"\r\n");
	fi_fprintf(fph,"            MappingInformationType: \"AllSame\"\r\n");
	fi_fprintf(fph,"            ReferenceInformationType: \"IndexToDirect\"\r\n");
	fi_fprintf(fph,"            Materials: 0\r\n");
	fi_fprintf(fph,"        }\r\n");
	fi_fprintf(fph,"        LayerElementTexture: 0 {\r\n");
	fi_fprintf(fph,"            Version: 101\r\n");
	fi_fprintf(fph,"            Name: \"\"\r\n");
	fi_fprintf(fph,"            MappingInformationType: \"NoMappingInformation\"\r\n");
	fi_fprintf(fph,"            ReferenceInformationType: \"IndexToDirect\"\r\n");
	fi_fprintf(fph,"            BlendMode: \"Translucent\"\r\n");
	fi_fprintf(fph,"            TextureAlpha: 1\r\n");
	fi_fprintf(fph,"            TextureId:\r\n");
	fi_fprintf(fph,"        }\r\n");
	fi_fprintf(fph,"        Layer: 0 {\r\n");
	fi_fprintf(fph,"            Version: 100\r\n");
	fi_fprintf(fph,"            LayerElement:  {\r\n");
	fi_fprintf(fph,"                Type: \"LayerElementMaterial\"\r\n");
	fi_fprintf(fph,"                TypedIndex: 0\r\n");
	fi_fprintf(fph,"            }\r\n");
	fi_fprintf(fph,"            LayerElement:  {\r\n");
	fi_fprintf(fph,"                Type: \"LayerElementTexture\"\r\n");
	fi_fprintf(fph,"                TypedIndex: 0\r\n");
	fi_fprintf(fph,"            }\r\n");
	fi_fprintf(fph,"            LayerElement:  {\r\n");
	fi_fprintf(fph,"                Type: \"LayerElementUV\"\r\n");
	fi_fprintf(fph,"                TypedIndex: 0\r\n");
	fi_fprintf(fph,"            }\r\n");
	fi_fprintf(fph,"        }\r\n");
	fi_fprintf(fph,"        NodeAttributeName: \"Geometry::Box01_ncl1_1\"\r\n");
	fi_fprintf(fph,"    }\r\n");

	fi_fprintf(fph,"    SceneInfo: \"SceneInfo::GlobalInfo\", \"UserData\" {\r\n");
	fi_fprintf(fph,"        Type: \"UserData\"\r\n");
	fi_fprintf(fph,"        Version: 100\r\n");
	fi_fprintf(fph,"        MetaData:  {\r\n");
	fi_fprintf(fph,"            Version: 100\r\n");
	fi_fprintf(fph,"            Title: \"\"\r\n");
	fi_fprintf(fph,"            Subject: \"\"\r\n");
	fi_fprintf(fph,"            Author: \"\"\r\n");
	fi_fprintf(fph,"            Keywords: \"\"\r\n");
	fi_fprintf(fph,"            Revision: \"\"\r\n");
	fi_fprintf(fph,"            Comment: \"\"\r\n");
	fi_fprintf(fph,"        }\r\n");
	fi_fprintf(fph,"        Properties60:  {\r\n");
	fi_fprintf(fph,"            Property: \"DocumentUrl\", \"KString\", \"\", \"aconcave.fbx\"\r\n");
	fi_fprintf(fph,"            Property: \"SrcDocumentUrl\", \"KString\", \"\", \"aconcave.fbx\"\r\n");
	fi_fprintf(fph,"            Property: \"Original\", \"Compound\", \"\"\r\n");
	fi_fprintf(fph,"            Property: \"Original|ApplicationVendor\", \"KString\", \"\", \"\"\r\n");
	fi_fprintf(fph,"            Property: \"Original|ApplicationName\", \"KString\", \"\", \"\"\r\n");
	fi_fprintf(fph,"            Property: \"Original|ApplicationVersion\", \"KString\", \"\", \"\"\r\n");
	fi_fprintf(fph,"            Property: \"Original|DateTime_GMT\", \"DateTime\", \"\", \"\"\r\n");
	fi_fprintf(fph,"            Property: \"Original|FileName\", \"KString\", \"\", \"\"\r\n");
	fi_fprintf(fph,"            Property: \"LastSaved\", \"Compound\", \"\"\r\n");
	fi_fprintf(fph,"            Property: \"LastSaved|ApplicationVendor\", \"KString\", \"\", \"\"\r\n");
	fi_fprintf(fph,"            Property: \"LastSaved|ApplicationName\", \"KString\", \"\", \"\"\r\n");
	fi_fprintf(fph,"            Property: \"LastSaved|ApplicationVersion\", \"KString\", \"\", \"\"\r\n");
	fi_fprintf(fph,"            Property: \"LastSaved|DateTime_GMT\", \"DateTime\", \"\", \"\"\r\n");
	fi_fprintf(fph,"        }\r\n");
	fi_fprintf(fph,"    }\r\n");
	fi_fprintf(fph,"    Material: \"Material::Box01Mat\", \"\" {\r\n");
	fi_fprintf(fph,"        Version: 102\r\n");
	fi_fprintf(fph,"        ShadingModel: \"phong\"\r\n");
	fi_fprintf(fph,"        MultiLayer: 0\r\n");
	fi_fprintf(fph,"        Properties60:  {\r\n");
	fi_fprintf(fph,"            Property: \"ShadingModel\", \"KString\", \"\", \"Phong\"\r\n");
	fi_fprintf(fph,"            Property: \"MultiLayer\", \"bool\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"EmissiveColor\", \"ColorRGB\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"EmissiveFactor\", \"double\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"AmbientColor\", \"ColorRGB\", \"\",0.2,0.2,0.2\r\n");
	fi_fprintf(fph,"            Property: \"AmbientFactor\", \"double\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"DiffuseColor\", \"ColorRGB\", \"\",0.8,0.8,0.8\r\n");
	fi_fprintf(fph,"            Property: \"DiffuseFactor\", \"double\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"Bump\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"NormalMap\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"BumpFactor\", \"double\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"TransparentColor\", \"ColorRGB\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"TransparencyFactor\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"DisplacementColor\", \"ColorRGB\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"DisplacementFactor\", \"double\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"SpecularColor\", \"ColorRGB\", \"\",0.2,0.2,0.2\r\n");
	fi_fprintf(fph,"            Property: \"SpecularFactor\", \"double\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"ShininessExponent\", \"double\", \"\",20\r\n");
	fi_fprintf(fph,"            Property: \"ReflectionColor\", \"ColorRGB\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"ReflectionFactor\", \"double\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"Emissive\", \"Vector3D\", \"\",0,0,0\r\n");
	fi_fprintf(fph,"            Property: \"Ambient\", \"Vector3D\", \"\",0.2,0.2,0.2\r\n");
	fi_fprintf(fph,"            Property: \"Diffuse\", \"Vector3D\", \"\",0.8,0.8,0.8\r\n");
	fi_fprintf(fph,"            Property: \"Specular\", \"Vector3D\", \"\",0.2,0.2,0.2\r\n");
	fi_fprintf(fph,"            Property: \"Shininess\", \"double\", \"\",20\r\n");
	fi_fprintf(fph,"            Property: \"Opacity\", \"double\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"Reflectivity\", \"double\", \"\",0\r\n");
	fi_fprintf(fph,"        }\r\n");
	fi_fprintf(fph,"    }\r\n");
	fi_fprintf(fph,"    GlobalSettings:  {\r\n");
	fi_fprintf(fph,"        Version: 1000\r\n");
	fi_fprintf(fph,"        Properties60:  {\r\n");
	fi_fprintf(fph,"            Property: \"UpAxis\", \"int\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"UpAxisSign\", \"int\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"FrontAxis\", \"int\", \"\",2\r\n");
	fi_fprintf(fph,"            Property: \"FrontAxisSign\", \"int\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"CoordAxis\", \"int\", \"\",0\r\n");
	fi_fprintf(fph,"            Property: \"CoordAxisSign\", \"int\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"OriginalUpAxis\", \"int\", \"\",-1\r\n");
	fi_fprintf(fph,"            Property: \"OriginalUpAxisSign\", \"int\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"UnitScaleFactor\", \"double\", \"\",1\r\n");
	fi_fprintf(fph,"            Property: \"OriginalUnitScaleFactor\", \"double\", \"\",1\r\n");
	fi_fprintf(fph,"        }\r\n");
	fi_fprintf(fph,"    }\r\n");
	fi_fprintf(fph,"}\r\n");
	fi_fprintf(fph,"\r\n");
	fi_fprintf(fph,"; Object connections\r\n");
	fi_fprintf(fph,";------------------------------------------------------------------\r\n");
	fi_fprintf(fph,"\r\n");
	fi_fprintf(fph,"Connections:  {\r\n");
	fi_fprintf(fph,"    Connect: \"OO\", \"Model::aconcave_root\", \"Model::Scene\"\r\n");
	fi_fprintf(fph,"    Connect: \"OO\", \"Model::Box01\", \"Model::aconcave_root\"\r\n");
	fi_fprintf(fph,"    Connect: \"OO\", \"Material::Box01Mat\", \"Model::Box01\"\r\n");
	fi_fprintf(fph,"}\r\n");
	fi_fprintf(fph,";Takes and animation section\r\n");
	fi_fprintf(fph,";----------------------------------------------------\r\n");
	fi_fprintf(fph,"\r\n");
	fi_fprintf(fph,"Takes:  {\r\n");
	fi_fprintf(fph,"    Current: \"\"\r\n");
	fi_fprintf(fph,"}\r\n");
	fi_fprintf(fph,";Version 5 settings\r\n");
	fi_fprintf(fph,";------------------------------------------------------------------\r\n");
	fi_fprintf(fph,"\r\n");
	fi_fprintf(fph,"Version5:  {\r\n");
	fi_fprintf(fph,"    AmbientRenderSettings:  {\r\n");
	fi_fprintf(fph,"        Version: 101\r\n");
	fi_fprintf(fph,"        AmbientLightColor: 0.4,0.4,0.4,0\r\n");
	fi_fprintf(fph,"    }\r\n");
	fi_fprintf(fph,"    FogOptions:  {\r\n");
	fi_fprintf(fph,"        FlogEnable: 0\r\n");
	fi_fprintf(fph,"        FogMode: 0\r\n");
	fi_fprintf(fph,"        FogDensity: 0.002\r\n");
	fi_fprintf(fph,"        FogStart: 0.3\r\n");
	fi_fprintf(fph,"        FogEnd: 1000\r\n");
	fi_fprintf(fph,"        FogColor: 1,1,1,1\r\n");
	fi_fprintf(fph,"    }\r\n");
	fi_fprintf(fph,"    Settings:  {\r\n");
	fi_fprintf(fph,"        FrameRate: \"30\"\r\n");
	fi_fprintf(fph,"        TimeFormat: 1\r\n");
	fi_fprintf(fph,"        SnapOnFrames: 0\r\n");
	fi_fprintf(fph,"        ReferenceTimeIndex: -1\r\n");
	fi_fprintf(fph,"        TimeLineStartTime: 0\r\n");
	fi_fprintf(fph,"        TimeLineStopTime: 46186158000\r\n");
	fi_fprintf(fph,"    }\r\n");
	fi_fprintf(fph,"    RendererSetting:  {\r\n");
	fi_fprintf(fph,"        DefaultCamera: \"\"\r\n");
	fi_fprintf(fph,"        DefaultViewingMode: 0\r\n");
	fi_fprintf(fph,"    }\r\n");
	fi_fprintf(fph,"}\r\n");


}
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
void SurfaceMeshDataContainerWriter::execute()
{
  int err = 0;
  std::stringstream ss;
  setErrorCondition(err);
  SurfaceMeshDataContainer* sm = getSurfaceMeshDataContainer();
  if(NULL == sm)
  {
    setErrorCondition(-999);
    notifyErrorMessage("The Surfacemesh DataContainer Object was NULL", -999);
    return;
  }
  setErrorCondition(0);

  // Create the HDF5 Group for the Data Container
  err = H5Utilities::createGroupsFromPath(DREAM3D::HDF5::SurfaceMeshDataContainerName.c_str(), m_HdfFileId);
  if (err < 0)
  {
    ss.str("");
    ss << "Error creating HDF Group " << DREAM3D::HDF5::SurfaceMeshDataContainerName << std::endl;
    setErrorCondition(-60);
    addErrorMessage(getHumanLabel(), ss.str(), err);
    return;
  }
  hid_t dcGid = H5Gopen(m_HdfFileId, DREAM3D::HDF5::SurfaceMeshDataContainerName.c_str(), H5P_DEFAULT );
  if (dcGid < 0)
  {
    ss.str("");
    ss << "Error opening Group " << DREAM3D::HDF5::SurfaceMeshDataContainerName << std::endl;
    setErrorCondition(-61);
    addErrorMessage(getHumanLabel(), ss.str(), err);
    return;
  }

  // Add some VTK hints into the group
  err = createVtkObjectGroup(DREAM3D::HDF5::SurfaceMeshDataContainerName, H5_VTK_POLYDATA);
  if (err < 0)  {
    return;
  }

  writeXdmfGridHeader();


  H5GroupAutoCloser dcGidAutoCloser(&dcGid);

  err = writeVertices(dcGid);
  if (err < 0)
  {
    return;
  }

  err = writeMeshVertLinks(dcGid);
  if (err < 0)
  {
    return;
  }

  err = writeVertexAttributeData(dcGid);
  if (err < 0)
  {
    return;
  }


  err = writeFaces(dcGid);
  if (err < 0)
  {
    return;
  }

  err = writeMeshFaceNeighborLists(dcGid);
  if (err < 0)
  {
    return;
  }

  err = writeFaceAttributeData(dcGid);
  if (err < 0)
  {
    return;
  }

  err = writeEdges(dcGid);
  if (err < 0)
  {
    return;
  }

  err = writeEdgeAttributeData(dcGid);
  if (err < 0)
  {
    return;
  }


  err = writeFieldData(dcGid);
  if (err < 0)
  {
    H5Gclose(dcGid); // Close the Data Container Group
    return;
  }

  err = writeEnsembleData(dcGid);
  if (err < 0)
  {
    H5Gclose(dcGid); // Close the Data Container Group
    return;
  }


  // Now finally close the group and the HDf5 File
  H5Gclose(dcGid); // Close the Data Container Group
  dcGid = -1;

  writeXdmfGridFooter();


  notifyStatusMessage("Complete");
}
Пример #9
0
	void G3djWriter::exportG3dj(G3djFile *file, const char* filePath){
		writer = new JSONWriter(filePath);

		writer->openObject();

		writer->writeStringPair("version", G3DJ_VERSION);
		writer->nextValue(true);

		// Write Meshes
		writer->openArray("meshes");

		// meshes
		for (unsigned int i=0; i<file->getMeshCount(); i++)
		{
			Mesh *mesh = file->getMesh(i);
			if(i>0)
				writer->nextValue(true);

			writer->openObject();

			// write ID out first
			writer->writeStringPair("id", mesh->getId().c_str());
			writer->nextValue(true);

			// then the attributes
			writer->openArray("attributes");
				writeAttributes(mesh);
			writer->closeArray();
			writer->nextValue(true);

			// then the interleaved vertices
			writer->openArray("vertices");
				writeVertices(mesh);
			writer->closeArray();
			writer->nextValue(true);

			// then the mesh parts (optional)
			if(mesh->parts.size() > 0){
				writer->openArray("parts");
					writeMeshParts(mesh);
				writer->closeArray();
			}
			writer->closeObject();
		}

		writer->closeArray();
		writer->nextValue(true);

		// Write Materials
		if(file->getMaterialCount() > 0){
			writer->openArray("materials");

			for(unsigned int i=0; i<file->getMaterialCount(); i++){
				G3djMaterial* material = file->getMaterial(i);
			
				if(i>0)
					writer->nextValue(true);

				writeMaterial(material);
			}

			writer->closeArray();
			writer->nextValue(true);
		}

		// Write Nodes
		writer->openArray("nodes");

		for(unsigned int i=0; i<file->getNodeCount(); i++){
			G3djNode* node = file->getNode(i);

			if(i>0)
				writer->nextValue(true);

			writeNodeRecursive(node);
		}

		writer->closeArray();
		writer->nextValue(true);

		// Write Animations
		writer->openArray("animations");

		for(unsigned int i=0; i<file->getAnimationClipCount(); i++){
			AnimationClip* animationClip = file->getAnimationClip(i);

			if(i>0)
				writer->nextValue(true);

			writeAnimationClip(animationClip);
		}

		writer->closeArray();

		// Main object closing
		writer->closeObject();
	}
Пример #10
0
void G3D::writeContent(AbstractWriter& writer, const GeometryAoS& geometry) {
    writeIndices(writer, geometry.indices, geometry.info);
    writeVertices(writer, geometry.vertices, geometry.info);
}