本文整理汇总了C++中ON_BinaryArchive::ReadDouble方法的典型用法代码示例。如果您正苦于以下问题:C++ ON_BinaryArchive::ReadDouble方法的具体用法?C++ ON_BinaryArchive::ReadDouble怎么用?C++ ON_BinaryArchive::ReadDouble使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ON_BinaryArchive
的用法示例。
在下文中一共展示了ON_BinaryArchive::ReadDouble方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Read
BOOL ON_BrepEdge::Read( ON_BinaryArchive& file )
{
int bReversed = false;
ON_Interval proxy_domain;
BOOL rc = file.ReadInt( &m_edge_index );
if (rc) rc = file.ReadInt( &m_c3i );
if (rc) rc = file.ReadInt( &bReversed );
if (rc) rc = file.ReadInterval( proxy_domain );
if (rc) rc = file.ReadInt( 2, m_vi );
if (rc) rc = file.ReadArray( m_ti );
if (rc) rc = file.ReadDouble( &m_tolerance );
ON_Interval domain = proxy_domain;
if ( file.Archive3dmVersion() >= 3
&& file.ArchiveOpenNURBSVersion() >= 200206180 )
{
if (rc)
{
rc = file.ReadInterval(domain);
if ( !rc)
domain = proxy_domain;
}
}
SetProxyCurve( NULL, proxy_domain );
if ( bReversed )
ON_CurveProxy::Reverse();
SetDomain(domain);
return rc;
}
示例2: Read
ON_BOOL32 ON_AngularDimension::Read( ON_BinaryArchive& file )
{
ON_BOOL32 rc = ON_Annotation::Read( file );
if( rc )
rc = file.ReadDouble( &m_angle );
if( rc )
rc = file.ReadDouble( &m_radius );
if( m_angle <= 0.0 || m_angle > REALLY_BIG_NUMBER)
return false;
if( m_radius <= 0.0 || m_radius > REALLY_BIG_NUMBER)
return false;
return rc;
}
示例3: Read
ON_BOOL32 ON_DetailView::Read(ON_BinaryArchive& archive)
{
m_page_per_model_ratio = 0.0;
m_view.Default();
m_boundary.Destroy();
int major_version = 0;
int minor_version = 0;
bool rc = archive.BeginRead3dmChunk( TCODE_ANONYMOUS_CHUNK, &major_version, &minor_version );
if (!rc)
return false;
for(;;)
{
rc = (1 == major_version );
if (!rc) break;
// m_view is wrapped in a subchunk so ON_3dmView can be expanded
// without breaking the file format.
int mj = 0, mn = 0;
rc = archive.BeginRead3dmChunk( TCODE_ANONYMOUS_CHUNK, &mj, &mn );
if (rc)
{
rc = m_view.Read(archive);
if (!archive.EndRead3dmChunk())
rc = false;
}
if (!rc) break;
// m_boundary is wrapped in a subchunk so ON_NurbsCurve can be expanded
// without breaking the file format.
mj = mn = 0;
rc = archive.BeginRead3dmChunk( TCODE_ANONYMOUS_CHUNK, &mj, &mn );
if (rc)
{
rc = m_boundary.Read(archive)?true:false;
if (!archive.EndRead3dmChunk())
rc = false;
}
if (!rc) break;
if ( minor_version >= 1 )
{
rc = archive.ReadDouble(&m_page_per_model_ratio);
}
break;
}
if ( !archive.EndRead3dmChunk() )
rc = false;
return rc;
}
示例4:
BOOL
ON_BrepVertex::Read( ON_BinaryArchive& file )
{
BOOL rc = file.ReadInt( &m_vertex_index );
if ( rc )
rc = file.ReadPoint( point );
if ( rc )
rc = file.ReadArray( m_ei );
if ( rc )
rc = file.ReadDouble( &m_tolerance );
return rc;
}
示例5: Read
BOOL ON_Hatch::Read( ON_BinaryArchive& ar)
{
m_plane.CreateFromNormal( ON_origin, ON_zaxis);
m_pattern_scale = 1.0;
m_pattern_rotation = 0.0;
m_pattern_index = -1;
m_loops.Empty();
int major_version = 0;
int minor_version = 0;
BOOL rc = ar.Read3dmChunkVersion( &major_version, &minor_version);
if ( major_version == 1 )
{
if( rc) rc = ar.ReadPlane( m_plane);
if( rc) rc = ar.ReadDouble( &m_pattern_scale);
if( rc) rc = ar.ReadDouble( &m_pattern_rotation);
if( rc) rc = ar.ReadInt( &m_pattern_index);
if( rc)
{
m_loops.Empty();
int i, count = 0;
rc = ar.ReadInt( &count);
if( rc && count > 0)
{
m_loops.SetCapacity( count );
for( i = 0; rc && i < count; i++)
{
ON_HatchLoop*& pLoop = m_loops.AppendNew();
pLoop = new ON_HatchLoop;
if( pLoop)
rc = pLoop->Read( ar);
else
rc = false;
}
}
}
}
return rc;
}
示例6: Read
ON_BOOL32 ON_Light::Read(
ON_BinaryArchive& file
)
{
Default();
int major_version = 0;
int minor_version = 0;
ON_BOOL32 rc = file.Read3dmChunkVersion(&major_version,&minor_version);
if ( rc && major_version == 1 ) {
int i;
// version 1.0 fields
i = 0;
if ( rc ) rc = file.ReadInt( &i );
if ( rc ) Enable(i);
if ( rc ) rc = file.ReadInt( &i );
if ( rc ) SetStyle(ON::LightStyle(i));
if ( rc ) rc = file.ReadDouble( &m_intensity );
if ( rc ) rc = file.ReadDouble( &m_watts );
if ( rc ) rc = file.ReadColor( m_ambient );
if ( rc ) rc = file.ReadColor( m_diffuse );
if ( rc ) rc = file.ReadColor( m_specular );
if ( rc ) rc = file.ReadVector( m_direction );
if ( rc ) rc = file.ReadPoint( m_location );
if ( rc ) rc = file.ReadDouble( &m_spot_angle );
if ( rc ) rc = file.ReadDouble( &m_spot_exponent );
if ( rc ) rc = file.ReadVector( m_attenuation );
if ( rc ) rc = file.ReadDouble( &m_shadow_intensity );
if ( rc ) rc = file.ReadInt( &m_light_index );
if ( rc ) rc = file.ReadUuid( m_light_id );
if ( rc ) rc = file.ReadString( m_light_name );
if ( minor_version < 2 ) {
// set hotspot from 1.0 or 1.1 m_spot_exponent
double h = 1.0 - m_spot_exponent/128.0;
if ( h < 0.0 )
h = 0.0;
else if ( h > 1.0 )
h = 1.0;
m_hotspot = h;
m_spot_exponent = 0.0;
}
if ( minor_version >= 1 ) {
// version 1.1 fields
if ( rc ) rc = file.ReadVector( m_length );
if ( rc ) rc = file.ReadVector( m_width );
if ( minor_version >= 2 ) {
// version 1.2 fields
if ( rc ) rc = file.ReadDouble( &m_hotspot );
}
}
}
return rc;
}
示例7: Default
ON_BOOL32 ON_3dmObjectAttributes::Read( ON_BinaryArchive& file )
{
Default();
if ( file.Archive3dmVersion() >= 5
&& file.ArchiveOpenNURBSVersion() >= 200712190 )
{
return ReadV5Helper(file);
}
int i;
int major_version = 0;
int minor_version = 0;
bool rc = file.Read3dmChunkVersion(&major_version,&minor_version);
if ( rc && major_version == 1 )
{
if (rc) rc = file.ReadUuid(m_uuid);
if (rc) rc = file.ReadInt(&m_layer_index);
if (rc) rc = file.ReadInt(&m_material_index);
if (rc) rc = file.ReadColor(m_color);
while(rc)
{
// OBSOLETE if (rc) rc = file.ReadLineStyle(m_line_style); // 23 March 2005 Dale Lear
// replaced with
short s = 0;
double x;
rc = file.ReadShort(&s);
if (!rc) break;
if ( file.Archive3dmVersion() < 4 || file.ArchiveOpenNURBSVersion() < 200503170 )
{
// ignore unused linestyle info in old files
// This bit keeps the curve arrowheads from V3 showing up
// in V4.
m_object_decoration = ON::ObjectDecoration( (s & ON::both_arrowhead) );
}
rc = file.ReadShort(&s);
if (!rc) break;
rc = file.ReadDouble(&x);
if (!rc) break;
rc = file.ReadDouble(&x);
break;
}
if (rc) rc = file.ReadInt(&m_wire_density);
if (rc) rc = file.ReadChar(&m_mode);
if (rc) rc = file.ReadChar(&m_color_source);
if (rc) m_color_source = (unsigned char)ON::ObjectColorSource(m_color_source);
if (rc) rc = file.ReadChar(&m_linetype_source);
if (rc) m_linetype_source = (unsigned char)ON::ObjectLinetypeSource(m_linetype_source);
if (rc) rc = file.ReadChar(&m_material_source);
if (rc) m_material_source = (unsigned char)ON::ObjectMaterialSource(m_material_source);
if (rc) rc = file.ReadString(m_name);
if (rc) rc = file.ReadString(m_url);
m_bVisible = (Mode() != ON::hidden_object);
if ( rc && minor_version >= 1 )
{
rc = file.ReadArray( m_group );
if ( rc && minor_version >= 2 )
{
rc = file.ReadBool(&m_bVisible);
if ( rc && minor_version >= 3 )
{
rc = file.ReadArray(m_dmref);
if (rc && minor_version >= 4 )
{
// 23 March 2005 Dale Lear
// Added m_plot_color_source and m_plot_color
i = 0;
if (rc) rc = file.ReadInt(&i);
if (rc) m_object_decoration = ON::ObjectDecoration(i);
if (rc) rc = file.ReadChar(&m_plot_color_source);
if (rc) m_plot_color_source = (unsigned char)ON::PlotColorSource(m_plot_color_source);
if (rc) rc = file.ReadColor( m_plot_color );
if (rc) rc = file.ReadChar(&m_plot_weight_source);
if (rc) m_plot_weight_source = (unsigned char)ON::PlotWeightSource(m_plot_weight_source);
if (rc) rc = file.ReadDouble(&m_plot_weight_mm);
if (rc && minor_version >= 5 )
{
// version 1.5 fields 11 April 2005
if (rc) rc = file.ReadInt(&m_linetype_index);
// version 1.6 fields 2 September 2005
if (rc && minor_version >= 6 )
{
unsigned char uc = 0;
rc = file.ReadChar(&uc);
if (rc)
{
m_space = (1 == uc) ? ON::page_space : ON::model_space;
m_dmref.Empty();
int i, count=0;
rc = file.ReadInt(&count);
//.........这里部分代码省略.........
示例8: while
bool ON_3dmObjectAttributes::ReadV5Helper( ON_BinaryArchive& file )
{
unsigned char itemid, c;
int major_version = 0;
int minor_version = 0;
bool rc = file.Read3dmChunkVersion(&major_version,&minor_version);
if ( rc && 2 != major_version )
rc = false;
itemid = 0xFF;
while(rc)
{
if (!rc) break;
rc = file.ReadUuid(m_uuid);
if (!rc) break;
rc = file.ReadInt(&m_layer_index);
if (!rc) break;
// read non-default settings - skip everything else
rc = file.ReadChar(&itemid);
if (!rc) break;
if ( 0 == itemid )
break;
if ( 1 == itemid )
{
rc = file.ReadString(m_name);
if (!rc) break;
rc = file.ReadChar(&itemid);
if ( !rc || 0 == itemid ) break;
}
if ( 2 == itemid )
{
rc = file.ReadString(m_url);
if (!rc) break;
rc = file.ReadChar(&itemid);
if ( !rc || 0 == itemid ) break;
}
if ( 3 == itemid )
{
rc = file.ReadInt(&m_linetype_index);
if (!rc) break;
rc = file.ReadChar(&itemid);
if ( !rc || 0 == itemid ) break;
}
if ( 4 == itemid )
{
rc = file.ReadInt(&m_material_index);
if (!rc) break;
rc = file.ReadChar(&itemid);
if ( !rc || 0 == itemid ) break;
}
if ( 5 == itemid )
{
rc = m_rendering_attributes.Read(file);
if (!rc) break;
rc = file.ReadChar(&itemid);
if ( !rc || 0 == itemid ) break;
}
if ( 6 == itemid )
{
rc = file.ReadColor(m_color);
if (!rc) break;
rc = file.ReadChar(&itemid);
if ( !rc || 0 == itemid ) break;
}
if ( 7 == itemid )
{
rc = file.ReadColor(m_plot_color);
if (!rc) break;
rc = file.ReadChar(&itemid);
if ( !rc || 0 == itemid ) break;
}
if ( 8 == itemid )
{
rc = file.ReadDouble(&m_plot_weight_mm);
if (!rc) break;
rc = file.ReadChar(&itemid);
if ( !rc || 0 == itemid ) break;
}
if ( 9 == itemid )
{
rc = file.ReadChar(&c);
if (!rc) break;
m_object_decoration = ON::ObjectDecoration(c);
rc = file.ReadChar(&itemid);
if ( !rc || 0 == itemid ) break;
}
if ( 10 == itemid )
{
rc = file.ReadInt(&m_wire_density);
if (!rc) break;
rc = file.ReadChar(&itemid);
if ( !rc || 0 == itemid ) break;
}
if ( 11 == itemid )
{
rc = file.ReadBool(&m_bVisible);
if (!rc) break;
//.........这里部分代码省略.........
示例9: if
//.........这里部分代码省略.........
fbcnt = 0;
ON_BrepFace& f = NewFace(fi);
if (rc) rc = file.ReadInt( &i ); // legacy face index
if (rc) rc = file.ReadInt( &i ); // OBSOLETE f.m_material_index
int k = f.m_bRev;
if (rc) rc = file.ReadInt( &k );
if (rc) f.m_bRev = (k!=0);
if (rc) rc = file.ReadInt( &ftype_flag );
if (rc) rc = file.ReadPoint( f.m_bbox.m_min );
if (rc) rc = file.ReadPoint( f.m_bbox.m_max );
if (rc) rc = file.ReadInt( &fbcnt);
if (fbcnt < 1 )
rc = false;
for ( fbi = 0; rc && fbi < fbcnt; fbi++ ) {
btype_flag = 0;
ON_BrepLoop::TYPE looptype = ON_BrepLoop::unknown;
if (rc) rc = file.ReadInt( &i ); // legacy loop index
if (rc) rc = file.ReadInt( &btype_flag );
switch (btype_flag)
{
case 0:
looptype = ON_BrepLoop::outer;
break;
case 1:
looptype = ON_BrepLoop::inner;
break;
case -1:
looptype = ON_BrepLoop::slit;
break;
default:
looptype = ON_BrepLoop::unknown;
break;
}
if (rc) rc = file.ReadDouble( 2, &bnd_2d_bbox.m_min.x );
if (rc) rc = file.ReadDouble( 2, &bnd_2d_bbox.m_max.x );
btcnt = 0;
if (rc) rc = file.ReadInt( &btcnt );
if (btcnt < 1 )
rc = false;
ON_BrepLoop& bnd = NewLoop(looptype,f);
for ( bti = 0; rc && bti < btcnt; bti++ ) {
ON_BrepTrim& trim = NewTrim(false,bnd,m_T.Count());
te_index.Append(trim.m_trim_index);
if (rc) rc = file.ReadInt( &i ); // legacy trim index
if ( trim.m_trim_index != i )
{
ON_ERROR("ON_Brep::ReadOld200 - trim.m_trim_index out of synch.");
//rc = false;
//break;
}
if (rc) rc = file.ReadInt( &twin_index );
te_twin_index.Append(twin_index);
b = 0;
if (rc) rc = file.ReadChar( &b ); // true if legacy trim managed 3d edge
if (rc) rc = file.ReadInt( &trim.m_ei );
if (b) {
if ( trim.m_ei < 0 || trim.m_ei >= c3_count )
{
trim.m_ei = -1;
ON_ERROR("ON_Brep::ReadOld201 - trim.m_ei out of range.");
rc = false;
break;
}
}
if ( trim.m_trim_index >= 0 && trim.m_trim_index < c2_count )
trim.m_c2i = trim.m_trim_index;
示例10: Read
bool ON_BezierCage::Read(ON_BinaryArchive& archive)
{
Destroy();
int major_version = 0;
int minor_version = 0;
bool rc = archive.BeginRead3dmChunk(TCODE_ANONYMOUS_CHUNK,&major_version,&minor_version);
if ( rc )
{
while(rc)
{
if ( major_version != 1 )
{
ON_ERROR("ON_BezierCage::Read - old code unable to read new version of chunk");
rc = false;
break;
}
int dim=0,order0=0,order1=0,order2=0;
bool is_rat=false;
rc = archive.ReadInt(&dim);
if (!rc)
break;
if (dim < 1 || dim > 10000)
{
ON_ERROR("ON_BezierCage::Read - invalid dim");
rc=false;
break;
}
rc = archive.ReadBool(&is_rat);
if (!rc)
break;
rc = archive.ReadInt(&order0);
if (!rc)
break;
if ( order0 < 2 || order0 > 10000 )
{
ON_ERROR("ON_BezierCage::Read - invalid order0");
rc=false;
break;
}
rc = archive.ReadInt(&order1);
if (!rc)
break;
if ( order1 < 2 || order1 > 10000 )
{
ON_ERROR("ON_BezierCage::Read - invalid order1");
rc=false;
break;
}
rc = archive.ReadInt(&order2);
if (!rc)
break;
if ( order2 < 2 || order2 > 10000 )
{
ON_ERROR("ON_BezierCage::Read - invalid order2");
rc=false;
break;
}
rc = Create(dim,is_rat,order0,order1,order2);
if (!rc)
break;
int i,j,k;
const int cv_dim = m_is_rat?(m_dim+1):m_dim;
for(i = 0; i < order0 && rc; i++)
{
for(j = 0; j < order1 && rc; j++)
{
for ( k = 0; k < order2 && rc; k++)
{
rc = archive.ReadDouble(cv_dim,CV(i,j,k));
}
}
}
break;
}
if ( !archive.EndRead3dmChunk() )
{
rc = false;
}
}
return rc;
}
示例11: Read
BOOL ON_Layer::Read(
ON_BinaryArchive& file // restore definition from binary archive
)
{
int obsolete_value1 = 0; // see ON_Layer::Write
int major_version=0;
int minor_version=0;
int mode = ON::normal_layer;
Default();
BOOL rc = file.Read3dmChunkVersion(&major_version,&minor_version);
if ( rc && major_version == 1 )
{
// common to all 1.x formats
if ( rc ) rc = file.ReadInt( &mode );
if ( rc )
{
switch(mode)
{
case 0: // OBSOLETE ON::normal_layer
m_bVisible = true;
m_bLocked = false;
break;
case 1: // OBSOLETE ON::hidden_layer
m_bVisible = false;
m_bLocked = false;
break;
case 2: // OBSOLETE ON::locked_layer
m_bVisible = true;
m_bLocked = true;
break;
default:
m_bVisible = true;
m_bLocked = false;
break;
}
}
if ( rc ) rc = file.ReadInt( &m_layer_index );
if ( rc ) rc = file.ReadInt( &m_iges_level );
if ( rc ) rc = file.ReadInt( &m_material_index );
if ( rc ) rc = file.ReadInt( &obsolete_value1 );
if ( rc ) rc = file.ReadColor( m_color );
{
// OBSOLETE line style was never used - read and discard the next 20 bytes
short s;
double x;
if (rc) file.ReadShort(&s);
if (rc) file.ReadShort(&s);
if (rc) file.ReadDouble(&x);
if (rc) file.ReadDouble(&x);
}
if ( rc ) rc = file.ReadString( m_name );
if ( rc && minor_version >= 1 )
{
rc = file.ReadBool(&m_bVisible);
if ( rc && minor_version >= 2 )
{
rc = file.ReadInt( &m_linetype_index);
if (rc && minor_version >= 3 )
{
// 23 March 2005 Dale Lear
rc = file.ReadColor( m_plot_color);
if (rc) rc = file.ReadDouble( &m_plot_weight_mm);
if (rc && minor_version >= 4 )
{
rc = file.ReadBool(&m_bLocked);
if (rc && minor_version >= 5 )
{
rc = file.ReadUuid(m_layer_id);
if ( rc
&& minor_version >= 6
&& file.ArchiveOpenNURBSVersion() > 200505110
)
{
// Some files saved with opennurbs version 200505110
// do not contain correctly written m_parent_layer_id
// and m_bExpanded values.
// It is ok to default these values.
rc = file.ReadUuid(m_parent_layer_id);
if (rc)
rc = file.ReadBool(&m_bExpanded);
}
if ( rc && minor_version >= 7 )
{
// 1.7 field - added 6 June 2006
rc = m_rendering_attributes.Read(file);
if ( rc && minor_version >= 8 )
{
// 1.8 field - added 19 Sep 2006
rc = file.ReadUuid(m_display_material_id);
}
}
}
}
}
//.........这里部分代码省略.........
示例12: Read
ON_BOOL32 ON_InstanceDefinition::Read(
ON_BinaryArchive& binary_archive
)
{
int major_version = 0;
int minor_version = 0;
m_us.m_custom_unit_scale = 0.0;
m_us.m_custom_unit_name.Destroy();
m_us.m_unit_system = ON::no_unit_system;
m_source_bRelativePath = false;
m_source_archive.Destroy();
bool rc = binary_archive.Read3dmChunkVersion(&major_version,&minor_version);
if ( rc )
{
if ( major_version != 1 )
rc = false;
// version 1.0 fields
if ( rc )
rc = binary_archive.ReadUuid( m_uuid );
if ( rc )
rc = binary_archive.ReadArray( m_object_uuid );
if ( rc )
rc = binary_archive.ReadString( m_name );
if ( rc )
rc = binary_archive.ReadString( m_description );
if ( rc )
rc = binary_archive.ReadString( m_url );
if ( rc )
rc = binary_archive.ReadString( m_url_tag );
if ( rc )
rc = binary_archive.ReadBoundingBox( m_bbox );
// m_idef_update_type was an unsigned int and got changed to an enum. Read and write
// as an unsigned int to support backwards compatibility
unsigned int source = m_idef_update_type;
if ( rc )
rc = binary_archive.ReadInt( &source );
if( rc)
m_idef_update_type = ON_InstanceDefinition::IdefUpdateType(source);
if ( rc )
rc = binary_archive.ReadString( m_source_archive );
// version 1.1 fields
if ( minor_version >= 1 )
{
if ( rc )
rc = m_source_archive_checksum.Read( binary_archive );
}
// version 1.2 fields
if ( minor_version >= 2 )
{
int us = ON::no_unit_system;
if ( rc )
rc = binary_archive.ReadInt( &us );
m_us.m_unit_system = ON::UnitSystem(us);
if ( ON::custom_unit_system != m_us.m_unit_system && ON::no_unit_system != m_us.m_unit_system )
{
m_us.m_custom_unit_scale = ON::UnitScale( m_us.m_unit_system, ON::meters );
}
else
{
m_us.m_custom_unit_scale = 0.0;
}
if ( minor_version >= 3 )
{
// version 1.3 fields - added 6 March 2006
//int us = ON::no_unit_system;
if ( rc )
rc = binary_archive.ReadDouble( &m_us.m_custom_unit_scale );
if ( rc )
rc = binary_archive.ReadBool( &m_source_bRelativePath );
if ( rc && minor_version >= 4 )
{
rc = m_us.Read(binary_archive);
if (rc && minor_version >= 5 )
{
rc = binary_archive.ReadInt(&m_idef_update_depth);
}
}
}
}
}
return rc;
}
示例13: Read
ON_BOOL32 ON_Font::Read(
ON_BinaryArchive& file // restore definition from binary archive
)
{
Defaults();
m_font_index = -1;
int major_version = 0;
int minor_version = 0;
bool rc = file.Read3dmChunkVersion(&major_version,&minor_version);
if ( rc && major_version == 1 )
{
int i;
for(;;)
{
rc = file.ReadInt( &m_font_index );
if (!rc) break;
rc = file.ReadString( m_font_name );
if (!rc) break;
{
// 18 October 2002 Dale Lear:
// Lowell, wchar_t has different sizes on different OSs.
// When writing a wchar_t string, you should use one
// of the WriteString functions. This function must continue
// to use ReadShort(64,...) so old files will remain valid.
unsigned short sh[64];
rc = file.ReadShort(64, sh);
if (!rc) break;
wchar_t facename[65];
for ( i = 0; i < 64; i++ )
{
facename[i] = sh[i];
}
facename[64] = 0;
SetFontFaceName(facename);
}
if( minor_version >= 1 )
{
rc = file.ReadInt( &i );
if (!rc) break;
SetFontWeight(i);
rc = file.ReadInt( &i);
if (!rc) break;
SetIsItalic(i?true:false);
rc = file.ReadDouble( &m_linefeed_ratio );
if (!rc) break;
if ( minor_version >= 2 )
{
rc = file.ReadUuid( m_font_id );
if (!rc) break;
}
//if ( minor_version >= 3 )
//{
// rc = file.ReadInt( &i);
// if (!rc) break;
// SetUnderlined(i?true:false);
//}
}
break;
}
}
else
{
ON_ERROR("ON_Font::Read - get newer version of opennurbs");
rc = false;
}
return rc;
}
示例14: Read
ON_BOOL32 ON_InstanceDefinition::Read(
ON_BinaryArchive& binary_archive
)
{
int major_version = 0;
int minor_version = 0;
m_idef_layer_style = 0;
m_us.m_custom_unit_scale = 0.0;
m_us.m_custom_unit_name.Destroy();
m_us.m_unit_system = ON::no_unit_system;
m_source_bRelativePath = false;
m_source_archive.Destroy();
bool rc = binary_archive.Read3dmChunkVersion(&major_version,&minor_version);
if ( rc )
{
if ( major_version != 1 )
rc = false;
// version 1.0 fields
if ( rc )
rc = binary_archive.ReadUuid( m_uuid );
if ( rc )
rc = binary_archive.ReadArray( m_object_uuid );
if ( rc )
rc = binary_archive.ReadString( m_name );
if ( rc )
rc = binary_archive.ReadString( m_description );
if ( rc )
rc = binary_archive.ReadString( m_url );
if ( rc )
rc = binary_archive.ReadString( m_url_tag );
if ( rc )
rc = binary_archive.ReadBoundingBox( m_bbox );
// m_idef_update_type was an unsigned int and got changed to an enum. Read and write
// as an unsigned int to support backwards compatibility
unsigned int source = m_idef_update_type;
if ( rc )
rc = binary_archive.ReadInt( &source );
if( rc)
m_idef_update_type = ON_InstanceDefinition::IdefUpdateType(source);
if ( rc )
rc = binary_archive.ReadString( m_source_archive );
// version 1.1 fields
if ( minor_version >= 1 )
{
if ( rc )
rc = m_source_archive_checksum.Read( binary_archive );
}
// version 1.2 fields
if ( minor_version >= 2 )
{
int us = ON::no_unit_system;
if ( rc )
rc = binary_archive.ReadInt( &us );
m_us.m_unit_system = ON::UnitSystem(us);
if ( ON::custom_unit_system != m_us.m_unit_system && ON::no_unit_system != m_us.m_unit_system )
{
m_us.m_custom_unit_scale = ON::UnitScale( m_us.m_unit_system, ON::meters );
}
else
{
m_us.m_custom_unit_scale = 0.0;
}
if ( minor_version >= 3 )
{
// version 1.3 fields - added 6 March 2006
//int us = ON::no_unit_system;
if ( rc )
rc = binary_archive.ReadDouble( &m_us.m_custom_unit_scale );
if ( rc )
rc = binary_archive.ReadBool( &m_source_bRelativePath );
if ( rc && minor_version >= 4 )
{
rc = m_us.Read(binary_archive);
if (rc && minor_version >= 5 )
{
rc = binary_archive.ReadInt(&m_idef_update_depth);
if ( rc && minor_version >= 6 )
{
unsigned int i = 0;
rc = binary_archive.ReadInt(&i);
if ( i && i > 0 && i < 256 )
m_idef_layer_style = (unsigned char)i;
}
}
}
}
}
if ( ON_InstanceDefinition::embedded_def == m_idef_update_type )
{
// 7 February 2012
// "embedded_def" is obsolete.
if (m_source_archive.Length() > 0 )
//.........这里部分代码省略.........