예제 #1
0
void OBJMeshFileWriter::write(const IMeshWalker& walker)
{
    if (m_file == 0)
    {
        // Open the file for writing.
        m_file = fopen(m_filename.c_str(), "wt");
        if (m_file == 0)
            throw ExceptionIOError();

        // Write the file header.
        fprintf(
            m_file,
            "# File generated by %s.\n",
            Appleseed::get_synthetic_version_string());
    }

    // Write the mesh object name.
    fprintf(m_file, "o %s\n", walker.get_name());

    // Write the mesh data.
    write_vertices(walker);
    write_vertex_normals(walker);
    write_texture_coordinates(walker);
    write_faces(walker);

    // Update base indices.
    m_base_vertex_index += walker.get_vertex_count();
    m_base_vertex_normal_index += walker.get_vertex_normal_count();
    m_base_tex_coords_index += walker.get_tex_coords_count();
}
예제 #2
0
void write_file0(const char* fn) {
    FILE* fd = safe_fopen(fn, "w");
    write_file_version(fd);
    write_header(fd);
    write_format(fd);
    write_vertices(fd);
    write_cells(fd);
    write_cells_attributes(fd);
    fclose(fd);
}
예제 #3
0
void		xrLC_GlobalData	::				write_lm_data	( IWriter	&w )const
{
	write_vertices( w );
	write_deflectors = xr_new< twrite_deflectors	>( &_g_deflectors );
	//create_write_faces();
	write_deflectors->write( w );
	//destroy_write_faces();
	xr_delete( ::write_vertices );
	xr_delete( write_deflectors );
}
예제 #4
0
파일: WriteDamsel.hpp 프로젝트: obmun/moab
inline ErrorCode WriteDamsel::write_subrange(RangeSeqIntersectIter &rsi)
{
  ErrorCode rval = MB_SUCCESS;

  if (MBVERTEX == mbImpl->type_from_handle(rsi.get_start_handle()))
    rval = write_vertices(rsi);
  else if (MBENTITYSET > mbImpl->type_from_handle(rsi.get_start_handle()))
    rval = write_entities(rsi);
//else
//  rval = write_sets(rsi);

  return rval;
}
예제 #5
0
void PLYDataWriter::write ( const char * filename )
{
    assert ( mesh != NULL );
    p_ply oply;
    oply = ply_create( filename, PLY_ASCII, NULL, 0, NULL );

    if ( oply == NULL )
    {
        throw std::runtime_error( "Access to output file was impossible." );
    }
    write_header ( oply );
    write_vertices ( oply );
    write_faces ( oply );
    ply_close ( oply );
}
예제 #6
0
/* write piecewise polynomial molecular surface to output file */
int write_surface (struct surface *srf, FILE *fp_surface)
{
	/* writing */
	write_header (srf, srf -> mol -> name, fp_surface); if (error()) return(0);
	write_varieties (srf, fp_surface); if (error()) return(0);
	write_vertices (srf, fp_surface); if (error()) return(0);
	write_circles (srf, fp_surface); if (error()) return(0);
	write_arcs (srf, fp_surface); if (error()) return(0);
	write_faces (srf, fp_surface); if (error()) return(0);
	write_cycles (srf, fp_surface); if (error()) return(0);
	write_edges (srf, fp_surface); if (error()) return(0);
	write_components (srf, fp_surface); if (error()) return(0);

	fclose (fp_surface);
	return (1);
}