ON_BOOL32 ON_PolyEdgeSegment::Write( ON_BinaryArchive& archive ) const { bool rc = archive.BeginWrite3dmChunk(TCODE_ANONYMOUS_CHUNK,1,0); if (!rc) return false; for(;;) { rc = archive.WriteUuid(m_object_id); if (!rc) break; rc = archive.WriteComponentIndex(m_component_index); if (!rc) break; rc = archive.WriteInterval(m_edge_domain); if (!rc) break; rc = archive.WriteInterval(m_trim_domain); if (!rc) break; bool b = ON_CurveProxy::ProxyCurveIsReversed(); rc = archive.WriteBool(b); if (!rc) break; rc = archive.WriteInterval(ON_CurveProxy::Domain()); if (!rc) break; rc = archive.WriteInterval(ON_CurveProxy::ProxyCurveDomain()); if (!rc) break; break; } if ( !archive.EndWrite3dmChunk() ) rc = false; return rc; }
BOOL ON_BrepTrim::Write( ON_BinaryArchive& file ) const { ON_3dPoint P(0.0,0.0,0.0); BOOL rc = file.WriteInt( m_trim_index ); int i; if ( rc ) rc = file.WriteInt( m_c2i ); if ( rc ) rc = file.WriteInterval( ProxyCurveDomain() ); if ( rc ) rc = file.WriteInt( m_ei ); if ( rc ) rc = file.WriteInt( 2, m_vi ); if ( rc ) rc = file.WriteInt( m_bRev3d ); i = m_type; if ( rc ) rc = file.WriteInt( i ); i = m_iso; if ( rc ) rc = file.WriteInt( i ); if ( rc ) rc = file.WriteInt( m_li ); if ( rc ) rc = file.WriteDouble( 2, m_tolerance ); if ( file.Archive3dmVersion() < 3 ) { if ( rc ) rc = file.WritePoint( P ); // m_P[0] ); if ( rc ) rc = file.WritePoint( P ); // m_P[1] ); } else { // trim proxy curve information added in version 200206180 if (rc ) rc = file.WriteInterval( Domain() ); unsigned char b[24]; memset(b,0,sizeof(b)); b[0] = ProxyCurveIsReversed() ? 1 : 0; if (rc) rc = file.WriteChar(8,b); b[0] = 0; if (rc) rc = file.WriteChar(24,b); } if ( rc ) rc = file.WriteDouble( m__legacy_2d_tol ); if ( rc ) rc = file.WriteDouble( m__legacy_3d_tol ); return rc; }
BOOL ON_BrepEdge::Write( ON_BinaryArchive& file ) const { BOOL rc = file.WriteInt( m_edge_index ); if (rc) rc = file.WriteInt( m_c3i ); int i = ProxyCurveIsReversed() ? 1 : 0; if (rc) rc = file.WriteInt( i ); if (rc) rc = file.WriteInterval( ProxyCurveDomain() ); if (rc) rc = file.WriteInt( 2, m_vi ); if (rc) rc = file.WriteArray( m_ti ); if (rc) rc = file.WriteDouble( m_tolerance ); if ( file.Archive3dmVersion() >= 3 ) { // added in opennurbs version 200206180 if (rc) rc = file.WriteInterval( Domain() ); } return rc; }
ON_BOOL32 ON_LineCurve::Write( ON_BinaryArchive& file // open binary file ) const { ON_BOOL32 rc = file.Write3dmChunkVersion(1,0); if (rc) { rc = file.WriteLine( m_line ); if (rc) rc = file.WriteInterval( m_t ); if (rc) rc = file.WriteInt(m_dim); } return rc; }
ON_BOOL32 ON_PlaneSurface::Write( ON_BinaryArchive& file // open binary file ) const { ON_BOOL32 rc = file.Write3dmChunkVersion(1,1); // version 1.0 chunks if (rc) rc = file.WritePlane( m_plane ); if (rc) rc = file.WriteInterval( m_domain[0] ); if (rc) rc = file.WriteInterval( m_domain[1] ); // added to version 1.1 chunks if (rc) rc = file.WriteInterval( m_extents[0] ); if (rc) rc = file.WriteInterval( m_extents[1] ); return rc; }
bool ON_Localizer::Write(ON_BinaryArchive& archive) const { bool rc = archive.BeginWrite3dmChunk(TCODE_ANONYMOUS_CHUNK,1,0); if (!rc) return false; for(;;) { rc = archive.WriteInt(m_type); if ( !rc ) break; rc = archive.WritePoint(m_P); if ( !rc ) break; rc = archive.WriteVector(m_V); if ( !rc ) break; rc = archive.WriteInterval(m_d); if ( !rc ) break; rc = archive.BeginWrite3dmChunk(TCODE_ANONYMOUS_CHUNK,1,0); if (!rc) break; rc = archive.WriteBool( m_nurbs_curve ? true : false ); if ( rc && m_nurbs_curve ) rc = m_nurbs_curve->Write(archive)?true:false; if ( !archive.EndWrite3dmChunk() ) rc = false; if (!rc) break; rc = archive.BeginWrite3dmChunk(TCODE_ANONYMOUS_CHUNK,1,0); if (!rc) break; rc = archive.WriteBool( m_nurbs_surface ? true : false ); if ( rc && m_nurbs_surface ) rc = m_nurbs_surface->Write(archive)?true:false; if ( !archive.EndWrite3dmChunk() ) rc = false; if (!rc) break; break; } if ( !archive.EndWrite3dmChunk() ) rc = false; return rc; }