Merge pull request #126 from mcneel/update-1787046531-v8.34.26223.11001

Sync changes from upstream repository
This commit is contained in:
Luis E. Fraguada
2026-08-20 12:25:41 +02:00
committed by GitHub
49 changed files with 213 additions and 215 deletions
+1 -1
View File
@@ -96,7 +96,7 @@
/* The openNURBS toolkit allows users to write all openNURBS classed that are
// derived from ON_Object using using TCODE_OPENNURBS_CLASS chunks.
// derived from ON_Object using TCODE_OPENNURBS_CLASS chunks.
// In the .3dm file these TCODE_OPENNURBS_CLASS chunks are always have the
// following format.
*/
+3 -3
View File
@@ -420,7 +420,7 @@ public:
// m_floating_viewport is used to track floating viewport information.
// 0 = the view is docked in the main application window.
// >0 = the view is floating. When floating, this corresponds to the
// number of monitors on on the user's computer when the file was saved
// number of monitors on the user's computer when the file was saved
unsigned char m_floating_viewport;
private:
// reserved for future use
@@ -605,7 +605,7 @@ public:
// After Dec 14, 2010 m_clipping_planes is saved.
ON_SimpleArray<ON_ClippingPlaneInfo> m_clipping_planes;
// If true, the the camera location, camera direction,
// If true, the camera location, camera direction,
// and lens angle should not be changed.
// It is ok to adjust clipping planes.
bool m_bLockedProjection;
@@ -1151,7 +1151,7 @@ public:
elevation_unit_system - [in]
length unit system for returned value.
Returns:
Earth location elevation in in elevation_unit_system.
Earth location elevation in elevation_unit_system.
The value is with
Can be ON_UNSET_VALUE
*/
+9 -10
View File
@@ -16,7 +16,7 @@
/*
Description:
An ON_Arc is a subcurve of 3d circle.
An ON_Arc is a subcurve of a 3d circle.
Details:
The curve is parameterized by an angle expressed in radians. For an IsValid() arc
the total subtended angle AngleRadians() = Domain()(1) - Domain()(0) must satisfy
@@ -301,7 +301,7 @@ public:
// Description:
// Checks an arc to make sure it is valid.
// Detail:
// Radius>0 and 0<AngleRadians()<=2 ON_PI
// Radius>0 and 0<AngleRadians()<=2*ON_PI
// Returns:
// true if the arc is valid.
bool IsValid() const;
@@ -410,7 +410,7 @@ public:
// Description:
// Set arc's domain as a subdomain of the circle.
// Parameters:
// domain_radian - [in] 0 < domain_radian[1] - domain_radian[0] <= 2.0 * ON*PI
// domain_radian - [in] 0 < domain_radian[1] - domain_radian[0] <= 2.0 * ON_PI
//
bool Trim(
ON_Interval domain_radian
@@ -508,7 +508,7 @@ public:
// Description:
// Reverse the orientation of the arc. Changes the domain
// from [a,b] to [-b.-a].
// from [a,b] to [-b,-a].
bool Reverse();
// Description:
@@ -528,7 +528,7 @@ public:
/*
Description:
Convert a NURBS curve arc parameter to a arc radians parameter.
Convert a NURBS curve arc parameter to an arc radians parameter.
Parameters:
nurbs_parameter - [in]
arc_radians_parameter - [out]
@@ -540,7 +540,7 @@ public:
arc.GetRadianFromNurbFormParameter( nurbs_t, &arc_t );
ON_NurbsCurve nurbs_curve;
arc.GetNurbsForm( nurbs_curve );
arc.GetNurbForm( nurbs_curve );
arc_pt = arc.PointAt(arc_t);
nurbs_pt = nurbs_curve.PointAt(nurbs_t);
// arc_pt and nurbs_pt will be the same
@@ -561,7 +561,7 @@ public:
/*
Description:
Convert a arc radians parameter to a NURBS curve arc parameter.
Convert an arc radians parameter to a NURBS curve arc parameter.
Parameters:
arc_radians_parameter - [in] 0.0 to 2.0*ON_PI
nurbs_parameter - [out]
@@ -573,7 +573,7 @@ public:
arc.GetNurbFormParameterFromRadian( arc_t, &nurbs_t );
ON_NurbsCurve nurbs_curve;
arc.GetNurbsForm( nurbs_curve );
arc.GetNurbForm( nurbs_curve );
arc_pt = arc.PointAt(arc_t);
nurbs_pt = nurbs_curve.PointAt(nurbs_t);
// arc_pt and nurbs_pt will be the same
@@ -585,7 +585,7 @@ public:
parameter and radian parameter are the same. At all other
values the nurbs and radian parameter values are different.
See Also:
ON_Arc::GetNurbFormParameterFromRadian
ON_Arc::GetRadianFromNurbFormParameter
*/
bool GetNurbFormParameterFromRadian(
double arc_radians_parameter,
@@ -601,4 +601,3 @@ private:
};
#endif
+6 -6
View File
@@ -638,7 +638,7 @@ public:
0 or the component's unique runtime serial number (ON_ModelComponent::RuntimeSerialNumber()).
component_id - [in]
component_name_hash - [in]
If the the component type requires a unique name and the name
If the component type requires a unique name and the name
is not valid or in use, the component will not be added.
Returns:
If an item is added to this manifest, then the identification
@@ -668,7 +668,7 @@ public:
component_id - [in]
If the id is nil or in use, a new id will be assigned.
component_name_hash - [in]
If the the component type requires a unique name and the name
If the component type requires a unique name and the name
is not valid or in use, the component will not be added.
original_name - [in/out]
If a new name needs to be assigned, the input value will be used
@@ -1817,7 +1817,7 @@ public:
/*
Returns:
True if the the target binary archive is set.
True if the target binary archive is set.
*/
bool BinaryArchiveIsSet() const;
@@ -3788,7 +3788,7 @@ public:
goo_3dm_version and goo_opennurbs_version must also be
set. In practice, you should use Write3dmAnonymousUserTableRecord()
to handle writing "goo" and use this function only when
the plug-in in present.
the plug-in present.
goo_3dm_version - [in]
If bSavingGoo is false, this parameter must be zero and
ON_BinaryArchive::Archive3dmVersion() will be used.
@@ -3802,7 +3802,7 @@ public:
of the opennurbs the plug-in code used to write the
user table.
Returns:
True if the the user information can be written.
True if the user information can be written.
False if user information should not be written.
*/
bool BeginWrite3dmUserTable(
@@ -4566,7 +4566,7 @@ private:
// is zero.
//
// Read3dmProperties() sets this to the version of OpenNURBS that was
// used to write file file. If the file was created using a version
// used to write file. If the file was created using a version
// of OpenNURBS before 200012210, this number will be zero.
//
// Write3dmProperties() stores the value returned by ON::Version() in
+2 -2
View File
@@ -60,7 +60,7 @@ public:
Returns:
Current value of the callback function for handling
the base64 encoded stream. If the callback function is
null, the the virtual Out() function is used to
null, the virtual Out() function is used to
handle the output stream.
*/
ON_StreamCallbackFunction CallbackFunction() const;
@@ -90,7 +90,7 @@ public:
Call In() one or more times to base64 encode a stream of bytes.
After the last call to In(), call End(). Calling In() will
result in at least in_buffer_size/57 and at most
(in_buffer_size+56)/57 calls to to the output stream handler.
(in_buffer_size+56)/57 calls to the output stream handler.
Parameters:
in_buffer_size - [in]
number of bytes in in_buffer
+4 -4
View File
@@ -537,7 +537,7 @@ public:
/*
Description:
Get the the 3d plane containing the profile curve at a
Get the 3d plane containing the profile curve at a
normalized path parameter.
Parameters:
s - [in] 0.0 = starting plane
@@ -558,7 +558,7 @@ public:
/*
Description:
Get the the 3d plane perpendicular to the path at a
Get the 3d plane perpendicular to the path at a
normalized path parameter.
Parameters:
s - [in] 0.0 = starting plane
@@ -795,7 +795,7 @@ public:
Test a polycurve to determine if it meets the necessary
conditions to be used as a multi-segment profile in a extrusion.
Returns:
True if the returned polycurve can be used a a multi-segment
True if the returned polycurve can be used as a multi-segment
profile in a extrusion.
*/
static bool IsValidPolyCurveProfile( const ON_PolyCurve& polycurve, ON_TextLog* text_log = 0 );
@@ -805,7 +805,7 @@ public:
If possible, modify a polycurve so it meets the necessary conditions
to be used as a multi-segment profile in a extrusion.
Returns:
True if the returned polycurve can be used a a multi-segment
True if the returned polycurve can be used as a multi-segment
profile in a extrusion.
*/
static bool CleanupPolyCurveProfile( ON_PolyCurve& polycurve );
+2 -2
View File
@@ -361,7 +361,7 @@ public:
d - [in] distance (> 0.0)
P - [in]
Returns:
True if if the shortest distance from the point P
True if the shortest distance from the point P
to the bounding box is greater than d.
*/
bool IsFartherThan( double d, const ON_3dPoint& P ) const;
@@ -419,7 +419,7 @@ public:
d - [in] distance (> 0.0)
other - [in] other bounding box
Returns:
True if if the shortest distance from this bounding
True if the shortest distance from this bounding
box to the other bounding box is greater than d.
*/
bool IsFartherThan( double d, const ON_BoundingBox& other ) const;
+2 -2
View File
@@ -57,7 +57,7 @@ public:
ON_3dPoint test_point
) const;
// rotate sphere about its origin
// rotate box about its origin
bool Rotate(
double sin_angle, // sin(angle)
double cos_angle, // cos(angle)
@@ -69,7 +69,7 @@ public:
const ON_3dVector& axis_of_rotation // axis of rotation
);
// rotate sphere about a point and axis
// rotate box about a point and axis
bool Rotate(
double sin_angle, // sin(angle)
double cos_angle, // cos(angle)
+13 -13
View File
@@ -166,7 +166,7 @@ Description:
Brep edge information is stored in ON_BrepEdge classes.
ON_Brep.m_E[] is an array of all the edges in the brep.
An ON_BrepEdge is derived from ON_CurveProxy so the the
An ON_BrepEdge is derived from ON_CurveProxy so the
edge can supply easy to use evaluation tools via
the ON_Curve virtual member functions.
@@ -352,7 +352,7 @@ public:
// The first occurrence of m_edge_index in m_V[m_vi[0]].m_ei[]
// is for the closed edge starting the vertex. The second
// occurrence of m_edge_index in m_V[m_vi[0]].m_ei[]
// is for the closed edge edge ending at the vertex.
// is for the closed edge ending at the vertex.
// C.f. ON_Brep::Next/PrevEdge().
int m_vi[2];
@@ -395,7 +395,7 @@ Description:
Brep trim information is stored in ON_BrepTrim classes.
ON_Brep.m_T[] is an array of all the trim in the brep.
An ON_BrepTrim is derived from ON_CurveProxy so the the
An ON_BrepTrim is derived from ON_CurveProxy so the
trim can supply easy to use evaluation tools via
the ON_Curve virtual member functions.
@@ -2358,7 +2358,7 @@ public:
surface must be an ON_PlaneSurface.
loop_type - [in] type of loop to add. If loop_type is
ON_BrepLoop::unknown, then the loop direction is tested
and the the new loops type will be set to
and the new loops type will be set to
ON_BrepLoop::outer or ON_BrepLoop::inner. If the loop_type
is ON_BrepLoop::outer, then the direction of the new loop
is tested and flipped if it is clockwise. If the loop_type
@@ -2778,7 +2778,7 @@ public:
Set the loop parameter space bounding box (loop.m_pbox).
Parameters:
loop - [in]
bLazy - [in] if true and loop trim trim.m_pbox is valid,
bLazy - [in] if true and loop trim.m_pbox is valid,
then that trim.m_pbox is not recalculated.
Returns:
true if loop ends up with a valid bounding box.
@@ -2793,7 +2793,7 @@ public:
for every loop and trim in the face
Parameters:
face - [in]
bLazy - [in] if true and trim trim.m_pbox is valid,
bLazy - [in] if true and trim.m_pbox is valid,
then that trim.m_pbox is not recalculated.
Returns:
true if all the face's loop and trim parameter space bounding
@@ -2807,7 +2807,7 @@ public:
Set the loop and trim parameter space bounding boxes
for every loop and trim in the brep.
Parameters:
bLazy - [in] if true and trim trim.m_pbox is valid,
bLazy - [in] if true and trim.m_pbox is valid,
then that trim.m_pbox is not recalculated.
Returns:
true if all the loop and trim parameter space bounding boxes
@@ -3230,7 +3230,7 @@ public:
/*
Description:
Set m_vertex_user.i, m_edge_user.i, m_face_user.i, m_loop_user.i,
and m_trim_user.i values values to distinguish connected components.
and m_trim_user.i values to distinguish connected components.
Parameters:
Returns:
number of connected components
@@ -3319,7 +3319,7 @@ public:
// Single face brep.
// Remarks:
// The m_vertex_user.i, m_edge_user.i, m_face_user.i, m_loop_user.i,
// and m_trim_user.i values of the returned brep are are set to the
// and m_trim_user.i values of the returned brep are set to the
// indices of the objects they duplicate.
// See Also:
// ON_Brep::DeleteFace, ON_Brep::ExtractFace
@@ -3329,7 +3329,7 @@ public:
) const;
// Description:
// Duplicate a a subset of a brep
// Duplicate a subset of a brep
// Parameters:
// face_count - [in] length of face_index[] array
// face_index - [in] array of face indices
@@ -3338,7 +3338,7 @@ public:
// A brep made by duplicating the faces listed in the face_index[] array.
// Remarks:
// The m_vertex_user.i, m_edge_user.i, m_face_user.i, m_loop_user.i,
// and m_trim_user.i values of the returned brep are are set to the
// and m_trim_user.i values of the returned brep are set to the
// indices of the objects they duplicate.
// See Also:
// ON_Brep::DuplicateFace
@@ -4072,7 +4072,7 @@ public:
// topology
// (all topology is deleted by ~ON_Brep(). Objects can be unreferenced.
// Use Compact() to to remove unreferenced geometry.
// Use Compact() to remove unreferenced geometry.
ON_BrepVertexArray m_V; // vertices
ON_BrepEdgeArray m_E; // edges
ON_BrepTrimArray m_T; // trims
@@ -4116,7 +4116,7 @@ public:
private:
// In calculations where multiple threads are using a brep and calling functions
// that may modify content, the calling code can use use ON_SleepLockGuard guard(Mutex)
// that may modify content, the calling code can use ON_SleepLockGuard guard(Mutex)
// or similar techniques to make the calculations thread safe.
// Because Mutex is a public resource, it must be used with great care to
// prevent lock contention.
+11 -12
View File
@@ -18,10 +18,10 @@ class ON_NurbsCurve;
/*
Description:
ON_Circle is a circle in 3d. The circle is represented by a radius and an
orthonormal frame of the plane containing the circle, with origin at the center.
ON_Circle is a circle in 3d. The circle is represented by a radius and an
orthonormal frame of the plane containing the circle, with origin at the center.
An Is_Valid() circle has positive radius and an Is_ Valid() plane defining the frame.
An IsValid() circle has positive radius and an IsValid() plane defining the frame.
The circle is parameterized by radians from 0 to 2 Pi given by
t -> center + cos(t)*radius*xaxis + sin(t)*radius*yaxis
@@ -94,7 +94,7 @@ public:
);
// Creates a circle parallel to the plane
// with given centr and radius.
// with given center and radius.
bool Create(
const ON_Plane& plane,
const ON_3dPoint& center,
@@ -158,11 +158,11 @@ public:
tight_bbox - [in/out] tight bounding box
bGrowBox -[in] (default=false)
If true and the input tight_bbox is valid, then returned
tight_bbox is the union of the input tight_bbox and the
arc's tight bounding box.
tight_bbox is the union of the input tight_bbox and the
circle's tight bounding box.
xform -[in] (default=nullptr)
If not nullptr, the tight bounding box of the transformed
arc is calculated. The arc is not modified.
circle is calculated. The circle is not modified.
Returns:
True if a valid tight_bbox is returned.
*/
@@ -266,7 +266,7 @@ public:
circle.GetRadianFromNurbFormParameter( nurbs_t, &circle_t );
ON_NurbsCurve nurbs_curve;
circle.GetNurbsForm( nurbs_curve );
circle.GetNurbForm( nurbs_curve );
circle_pt = circle.PointAt(circle_t);
nurbs_pt = nurbs_curve.PointAt(nurbs_t);
// circle_pt and nurbs_pt will be the same
@@ -299,7 +299,7 @@ public:
circle.GetNurbFormParameterFromRadian( circle_t, &nurbs_t );
ON_NurbsCurve nurbs_curve;
circle.GetNurbsForm( nurbs_curve );
circle.GetNurbForm( nurbs_curve );
circle_pt = circle.PointAt(circle_t);
nurbs_pt = nurbs_curve.PointAt(nurbs_t);
// circle_pt and nurbs_pt will be the same
@@ -311,7 +311,7 @@ public:
parameter and radian parameter are the same. At all other
values the nurbs and radian parameter values are different.
See Also:
ON_Circle::GetNurbFormParameterFromRadian
ON_Circle::GetRadianFromNurbFormParameter
*/
bool GetNurbFormParameterFromRadian(
double circle_radians_parameter,
@@ -321,5 +321,4 @@ public:
};
#endif
#endif
+2 -2
View File
@@ -60,7 +60,7 @@ public:
Returns:
Current value of the callback function for handling
the compressed stream. If the callback function is
null, the the virtual Out() function is used to
null, the virtual Out() function is used to
handle
*/
ON_StreamCallbackFunction CallbackFunction() const;
@@ -237,7 +237,7 @@ public:
Returns:
Current value of the callback function for handling
the uncompressed stream. If the callback function is
null, the the virtual UncompressedStreamOut() function
null, the virtual UncompressedStreamOut() function
is used.
*/
ON_StreamCallbackFunction CallbackFunction() const;
+3 -3
View File
@@ -77,7 +77,7 @@ public:
double AngleInRadians() const;
// Returns:
// The angle Iin degrees) between the axis and the side.
// The angle (in degrees) between the axis and the side.
// The angle and the height have the same sign.
double AngleInDegrees() const;
@@ -169,11 +169,11 @@ public:
/*
Description:
Creates a surface of revolution definition of the cylinder.
Creates a surface of revolution definition of the cone.
Parameters:
srf - [in] if not nullptr, then this srf is used.
Result:
A surface of revolution or nullptr if the cylinder is not
A surface of revolution or nullptr if the cone is not
valid or is infinite.
*/
ON_RevSurface* RevSurfaceForm( ON_RevSurface* srf = nullptr ) const;
+1 -1
View File
@@ -961,7 +961,7 @@ public:
Returns
true if the span is a non-degenerate line. This means:
- dimension = 2 or 3
- The length of the the line segment from the span's initial
- The length of the line segment from the span's initial
point to the span's control point is >= min_length.
- The maximum distance from the line segment to the span
is <= tolerance and the span increases monotonically
+2 -2
View File
@@ -703,7 +703,7 @@ public:
model_component - [in]
A copy of model_component is added to this model.
The index, id, and name of the copied component are
set the the model values (Manifest() "Manifest" index, name, and id).
set the model values (Manifest() "Manifest" index, name, and id).
bResolveIdAndNameConflicts - [in]
If bResolveIdAndNameConflicts is false, then model_component.Id() must be non-nil
@@ -968,7 +968,7 @@ public:
If true, attributes should be nullptr or point to an instance created by operator new and on the heap.
It will be deleted when the this ONX_Model and the last ON_ModelComponentReference are destroyed.
If false, the expert caller is carefully managing the instance and memory to insure
attributes is a valid instance while this ONX_Model and and ON_ModelComponentReference
attributes is a valid instance while this ONX_Model and ON_ModelComponentReference
are active.
attributes - [in]
+1 -1
View File
@@ -821,7 +821,7 @@ public:
fp - [in]
FILE pointer returned by ON_FileStream::Open().
file_size - [out]
If file_size is not null, the the size of the file
If file_size is not null, the size of the file
in bytes returned here
file_metadata_last_modified_time - [out]
If file_metadata_last_modified_time is not null, then the time the
+14 -14
View File
@@ -1959,7 +1959,7 @@ public:
/*
Description:
This is a debugging tool to test the code that starts with a font and
Unicode code point and and finds a glyph in the font definition for
Unicode code point and finds a glyph in the font definition for
that code point.
Parameters:
text_log - [in]
@@ -5271,7 +5271,7 @@ public:
Currently opennurbs and Rhino work on Microsoft Windows and Apple
platforms and use FreeType to access font information. When a font
is not "tricky", the "font design" units are the the units FreeType
is not "tricky", the "font design" units are the units FreeType
uses when a font is loaded with FT_LOAD_NO_SCALE.
When working with fonts and glyhphs in opennurbs and Rhino,
@@ -6333,10 +6333,10 @@ public:
of the three names, postscript_name, windows_logfont_name,
or family_name.
prefered_face_name - [in]
prefered_weight - [in]
prefered_stretch - [in]
prefered_style - [in]
preferred_face_name - [in]
preferred_weight - [in]
preferred_stretch - [in]
preferred_style - [in]
Preferred font properties.
bRequireFaceMatch - [in]
@@ -6345,8 +6345,8 @@ public:
or the family and face name pair.
bRequireStyleMatch - [in]
If true and prefered_stretch is not unset, then the returned
font will have prefered_style
If true and preferred_stretch is not unset, then the returned
font will have preferred_style
Remarks:
Ignores underlined, strikethrough, and point size settings when looking for a match.
*/
@@ -6371,10 +6371,10 @@ public:
of the three names, postscript_name, windows_logfont_name,
or family_name.
prefered_face_name - [in]
prefered_weight - [in]
prefered_stretch - [in]
prefered_style - [in]
preferred_face_name - [in]
preferred_weight - [in]
preferred_stretch - [in]
preferred_style - [in]
Preferred font properties.
bRequireFaceMatch - [in]
@@ -6383,8 +6383,8 @@ public:
or the family and face name pair.
bRequireStyleMatch - [in]
If true and prefered_stretch is not unset, then the returned
font will have prefered_style
If true and preferred_stretch is not unset, then the returned
font will have preferred_style
bUnderlined - [in]
Exact match required.
+1 -1
View File
@@ -75,7 +75,7 @@ public:
/*
Description:
Update the mapping from from reference file layer id to runtime model layer id.
Update the mapping from reference file layer id to runtime model layer id.
Typically this is done immediately after the reference file layers are added
to the runtime model.
Parameters:
+1 -1
View File
@@ -427,7 +427,7 @@ public:
/*
Description:
Controls layer visibility in in model viewports.
Controls layer visibility in model viewports.
Parameters:
bVisible - [in] true to make layer visible,
false to make layer invisible
+1 -1
View File
@@ -272,7 +272,7 @@ Returns:
P - [in]
L - [in]
Returns:
True if if the shortest distance from this line
True if the shortest distance from this line
to the other object is greater than d.
*/
bool IsFartherThan( double d, const ON_3dPoint& P ) const;
+1 -1
View File
@@ -66,7 +66,7 @@ public:
// For Rhino V4 the per detail visibility attribute is implemented
// through a display material reference on an object. This is ONLY
// for for detail viewports and only for V4. Keep this uuid around
// for detail viewports and only for V4. Keep this uuid around
// so the per detail attributes in future versions of Rhino can be
// implemented a different way.
// {1403A7E4-E7AD-4a01-A2AA-41DAE6BE7ECB}
+1 -1
View File
@@ -45,7 +45,7 @@ public:
/*
Returns:
Current lock value
ON_Lock::UnlockedValue indicates the the resource protected by the lock is available.
ON_Lock::UnlockedValue indicates the resource protected by the lock is available.
*/
int IsLocked();
+1 -1
View File
@@ -432,7 +432,7 @@ public:
-1 is returned, otherwise, the search begins
at m_textures[i0+1].
Example:
Iterate through all the the bitmap textures on
Iterate through all the bitmap textures on
a material.
ON_Material& mat = ...;
+1 -1
View File
@@ -934,7 +934,7 @@ Returns:
nullptr is returned.
Remarks:
The ids are invariant under invertable transformations.
Specifically, if one point point set is a rotation of another, then
Specifically, if one point set is a rotation of another, then
the assigned ids will be the same.
*/
ON_DECL
+9 -9
View File
@@ -1021,7 +1021,7 @@ public:
// or application defaults.
//
// When CustomSettings() is false, it indicates these mesh
// creation parameters were inherited from from model or
// creation parameters were inherited from model or
// application defaults and any mesh created with these
// parameters should be updated when these parameters
// differ from the current model or application defaults.
@@ -2380,7 +2380,7 @@ Returns:
mesh face vertex indices.
If "f" is an ON_MeshFace, then pass (const unsigned int*)f.vi.
Returns:
If the input is valid, the returned ngon pointer is is the
If the input is valid, the returned ngon pointer is the
face's triangle or quad. All returned information is in the
buffer[].
null - invalid input.
@@ -3113,7 +3113,7 @@ public:
// The m_mapping_crc is a CRC of a SHA1 hash of the parameters used in
// the calculation to set the current texture coordinates and/or vertex colors.
// This CRC is used to detect when the the texture coordinates and/or false colors need to be updated.
// This CRC is used to detect when the texture coordinates and/or false colors need to be updated.
// (Saving the SHA1 hash itself would be better, but changing m_mapping_crc to a SHA1 hash would break the SDK.)
//
// When m_mapping_id = ON_nil_uuid and m_mapping_type = ON_TextureMapping::TYPE::no_mapping,
@@ -3282,7 +3282,7 @@ public:
bool IsUnset() const;
/// <summary>
/// Get the color the the settings in this ON_SurfaceCurvatureColorMapping assign
/// Get the color the settings in this ON_SurfaceCurvatureColorMapping assign
/// to a pair of principal surface curvatures.
/// </summary>
/// <param name="K">
@@ -3465,7 +3465,7 @@ public:
bool IsUnset() const;
/// <summary>
/// Get the color the the settings in this ON_SurfaceDraftAngleColorMapping assign
/// Get the color the settings in this ON_SurfaceDraftAngleColorMapping assign
/// to a surface normal.
/// </summary>
/// <param name="surface_normal">
@@ -6085,7 +6085,7 @@ The map is an array of length m_F.Count(), ngon_map[]
// m_packed_tex_domain[] are all valid and the texture
// coordinates are based on surface evaluation parameters.
// In this special situation, this boolean records the
// correspondence between the the surface parameters, (u,v),
// correspondence between the surface parameters, (u,v),
// and the packed texture coordinates, (s,t),
//
// m_packed_tex_rotate = false:
@@ -6602,7 +6602,7 @@ public:
triangles, quads and explicitly defined ngons.
Remarks:
If CurrentNgonIsMeshFace() is true after calling FirstNgon().
the the returned ngon references a triangle or
the returned ngon references a triangle or
quad that is not part of an explicitly defined
ngon in the mesh. If you need the information
to persist after any subsequent calls to the iterator
@@ -6619,7 +6619,7 @@ public:
triangles, quads and explicitly defined ngons.
Remarks:
If CurrentNgonIsMeshFace() is true after calling NextNgon().
the the returned ngon references a triangle or
the returned ngon references a triangle or
quad that is not part of an explicitly defined
ngon in the mesh. If you need the information
to persist after any subsequent calls to the iterator
@@ -6637,7 +6637,7 @@ public:
or NextNgon().
Remarks:
If CurrentNgonIsMeshFace() is true after calling CurrentNgon().
the the returned ngon references a triangle or
the returned ngon references a triangle or
quad that is not part of an explicitly defined
ngon in the mesh. If you need the information
to persist after any subsequent calls to the iterator
+1 -1
View File
@@ -446,7 +446,7 @@ public:
/*
Returns:
When a component is in a model as part of the information required
for a linked instance definition, this value identifies the the linked
for a linked instance definition, this value identifies the linked
instance definition reference model.
Remarks:
Reference components are not saved in .3dm archives.
+1 -1
View File
@@ -563,7 +563,7 @@ public:
true if the span is a non-degenerate line. This means:
- dimension = 2 or 3
- There are full multiplicity knots at each end of the span.
- The length of the the line segment from the span's initial
- The length of the line segment from the span's initial
control point to the span's final control point is
>= min_length.
- The distance from the line segment to the interior control points
+6 -6
View File
@@ -205,7 +205,7 @@ public:
2 = north east,
3 = north west
point - [in] point to collapse to. If point is ON_3dPoint::UnsetPoint,
the the current location of the start of the side
the current location of the start of the side
is used.
Returns:
True if successful.
@@ -295,7 +295,7 @@ public:
be created if the 3d surface where flattened into a rectangle.
Parameters:
width - [out] (corresponds to the first surface parameter)
height - [out] (corresponds to the first surface parameter)
height - [out] (corresponds to the second surface parameter)
Remarks:
overrides virtual ON_Surface::GetSurfaceSize
Returns:
@@ -570,7 +570,7 @@ public:
int dir = 1;
ON_NurbsSurface* south_side = 0;
ON_NurbsSurface* north_side = 0;
srf.Split( dir, srf.Domain(dir).Mid() south_side, north_side );
srf.Split( dir, srf.Domain(dir).Mid(), south_side, north_side );
*/
bool Split(
@@ -762,7 +762,7 @@ public:
/// control point is active.
/// </summary>
/// <param name="dir">
/// 0: first surface paramter
/// 0: first surface parameter
/// 1: second surface parameter
/// </param>
/// <param name="control_point_index">
@@ -773,7 +773,7 @@ public:
/// then the spans in the specified parameter direction whose index satisfies
/// ON_2dex.i &lt;= span_index &lt; ON_2dex.j
/// use the specified control points.
/// If the iput is not valid, then ON_2dex(0,0) is returned.
/// If the input is not valid, then ON_2dex(0,0) is returned.
/// </returns>
const ON_2dex ControlPointSpans(
int dir,
@@ -789,7 +789,7 @@ public:
/// is false, then surface->PointAt(u,v) does not depend on the location of CV(i,j).
/// </summary>
/// <param name="dir">
/// 0: first surface paramter
/// 0: first surface parameter
/// 1: second surface parameter
/// </param>
/// <param name="control_point_index">
+1 -1
View File
@@ -90,7 +90,7 @@ public:
//
// 9: A SubD component parameter.
// m_t_ci identifies the SubD component.
// m_t[], m_s[], are used to encode a collection of indicies and doubles
// m_t[], m_s[], are used to encode a collection of indices and doubles
// that depend on the SubD component type.
// Use the SetFromSubDComponentParameter() and GetSubDComponentParameter()
// to convert between ON_ObjRefEvaluationParameter
+3 -3
View File
@@ -1860,7 +1860,7 @@ public:
id is used to resolve ambiguous unit names.
Parameters:
prefered_locale_id - [in]
preferred_locale_id - [in]
The Microsoft locale id that identifies the locale that should
be used to resolve ambiguous parsing situations. The default
value is zero, which means ambiguous situations are not parsed.
@@ -2197,7 +2197,7 @@ Parameters:
be a null, digit, punctuation, arithmetic operator, or a unicode
code point <= 0x0020 (0x0020 = space = 32 decimal).
prefered_locale_id - [in]
preferred_locale_id - [in]
If the parsed length unit name identifies different length unit systems
in different locales, then this value is used to resolve the
ambiguity. A list of Microsoft locale id values can be found at
@@ -2364,7 +2364,7 @@ Parameters:
This character can be a null, digit, punctuation, arithmetic operator,
or a unicode code point <= 0x0020 (0x0020 = space = 32 decimal).
prefered_locale_id - [in]
preferred_locale_id - [in]
If the parsed angle unit name identifies different angle unit systems
in different locales, then this value is used to resolve the
ambiguity. A list of Microsoft locale id values can be found at
+2 -2
View File
@@ -593,7 +593,7 @@ public:
double Depth() const;
// Negative depth values are currently not allowed. If a negative depth value
// is passed to this function, it will not the the internal depth value
// is passed to this function, it will not the internal depth value
void SetDepth(double depth);
// Default is false
@@ -651,7 +651,7 @@ public:
double Depth() const;
// Negative depth values are currently not allowed. If a negative depth value
// is passed to this function, it will not the the internal depth value
// is passed to this function, it will not the internal depth value
void SetDepth(double depth);
// Default is false
+3 -3
View File
@@ -104,7 +104,7 @@ public:
) const;
/// <summary>
/// Convert a a pair of normalized parameter values to
/// Convert a pair of normalized parameter values to
/// a pair of interval values.
/// This interval can be increasing, decreasing, or a singleton.
/// </summary>
@@ -199,7 +199,7 @@ public:
/// <param name="t">Input parameter</param>
/// <returns>
/// The input parameter in the target interval.
/// Returns input paramter unchanged if both intervals are identical.
/// Returns input parameter unchanged if both intervals are identical.
/// Returns ON_DBL_QNAN if either interval is not valid.
/// </returns>
double TransformParameterTo(const ON_Interval& target, double t) const;
@@ -2482,7 +2482,7 @@ public:
/// </summary>
/// <param name="kappa_style">
/// Specifies which type curvature (Gaussian, mean, ...) value to calculate from the principal curvatures.
/// The Gausian curvature can be positive or negative. The other curvatures are are &gt;= 0.
/// The Gausian curvature can be positive or negative. The other curvatures are &gt;= 0.
/// In particular, ON::curvature_style::mean_curvature return fabs(this->MeanCurvature()).
/// </param>
/// <returns>
+11 -11
View File
@@ -6,7 +6,7 @@
// To update version numbers, edit ..\build\build_dates.msbuild
#define RMA_VERSION_MAJOR 8
#define RMA_VERSION_MINOR 33
#define RMA_VERSION_MINOR 34
////////////////////////////////////////////////////////////////
//
@@ -14,9 +14,9 @@
// first step in each build.
//
#define RMA_VERSION_YEAR 2026
#define RMA_VERSION_MONTH 7
#define RMA_VERSION_DATE 7
#define RMA_VERSION_HOUR 13
#define RMA_VERSION_MONTH 8
#define RMA_VERSION_DATE 11
#define RMA_VERSION_HOUR 11
#define RMA_VERSION_MINUTE 0
////////////////////////////////////////////////////////////////
@@ -35,8 +35,8 @@
// 3 = build system release build
#define RMA_VERSION_BRANCH 0
#define VERSION_WITH_COMMAS 8,33,26188,13000
#define VERSION_WITH_PERIODS 8.33.26188.13000
#define VERSION_WITH_COMMAS 8,34,26223,11000
#define VERSION_WITH_PERIODS 8.34.26223.11000
#define COPYRIGHT "Copyright (C) 1993-2026, Robert McNeel & Associates. All Rights Reserved."
#define SPECIAL_BUILD_DESCRIPTION "Public OpenNURBS C++ 3dm file IO library."
@@ -44,11 +44,11 @@
#define RMA_VERSION_NUMBER_MAJOR_WSTRING L"8"
#define RMA_PREVIOUS_VERSION_NUMBER_MAJOR_WSTRING L"7"
#define RMA_VERSION_NUMBER_SR_STRING "SR33"
#define RMA_VERSION_NUMBER_SR_WSTRING L"SR33"
#define RMA_VERSION_NUMBER_SR_STRING "SR34"
#define RMA_VERSION_NUMBER_SR_WSTRING L"SR34"
#define RMA_VERSION_WITH_PERIODS_STRING "8.33.26188.13000"
#define RMA_VERSION_WITH_PERIODS_WSTRING L"8.33.26188.13000"
#define RMA_VERSION_WITH_PERIODS_STRING "8.34.26223.11000"
#define RMA_VERSION_WITH_PERIODS_WSTRING L"8.34.26223.11000"
@@ -71,7 +71,7 @@
#if defined(_WIN32) || defined(WIN32) || defined(_WIN64) || defined(WIN64) || defined(WINDOWS) || defined(_WINDOWS_) || defined(__WINDOWS__)
#if !defined(VS_FF_PRERELEASE)
// At this time, verrsrc.h does not have protection against multiple includes.
// Testing for VS_FF_PRERELEASE seems to prevent double incudes and the
// Testing for VS_FF_PRERELEASE seems to prevent double includes and the
// redef errors it generates.
#include "verrsrc.h"
#endif
+1 -1
View File
@@ -501,7 +501,7 @@ bool ON_Quaternion::Unitize()
}
else if ( x > 0.0 )
{
ON_Quaternion q(a*1.0e300,b*1.0e300,c*1.0e300,c*1.0e300);
ON_Quaternion q(a*1.0e300,b*1.0e300,c*1.0e300,d*1.0e300);
if ( !q.Unitize() )
return false;
a = q.a;
+2 -2
View File
@@ -225,7 +225,7 @@ public:
plane0 - [in]
plane1 - [in]
Returns:
The unit quaternion that represents the the rotation that maps
The unit quaternion that represents the rotation that maps
plane0.xaxis to plane1.xaxis,
plane0.yaxis to plane1.yaxis, and
plane0.zaxis to plane1.zaxis.
@@ -307,7 +307,7 @@ public:
where R_*(angle) is rotation of angle radians about the corresponding *-world coordinate axis.
Returns false if this is not a rotation.
Notes:
alpha and gamma are in the range (-pi, pi] while beta in in the range [0, pi]
alpha and gamma are in the range (-pi, pi] while beta in the range [0, pi]
*/
bool GetEulerZYZ(double& alpha, double& beta, double& gamma)const;
+1 -1
View File
@@ -100,7 +100,7 @@ public:
bool Transform( const ON_Xform& );
// parameterization of NURBS surface does not match sphere's transcendental paramaterization
// parameterization of NURBS surface does not match sphere's transcendental parameterization
int GetNurbForm( ON_NurbsSurface& ) const; // returns 0=failure, 2=success
/*
+10 -10
View File
@@ -60,7 +60,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -176,7 +176,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -308,7 +308,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -430,7 +430,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -551,7 +551,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -687,7 +687,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -810,7 +810,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -946,7 +946,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -1068,7 +1068,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -1189,7 +1189,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
+2 -2
View File
@@ -3843,9 +3843,9 @@ public:
s - [in]
string to parse.
s[0] must be a sign or a digit. It can be the ordinary characters or superscripts.
If the first digit is an ordinary digit, the the numerator and denominator must all
If the first digit is an ordinary digit, the numerator and denominator must all
be ordinary digits.
If the first digit is a superscript digit, the the numerator must be all superscript
If the first digit is a superscript digit, the numerator must be all superscript
digits and the denominator be all subscript digits.
len - [in]
maximum number of characters to parse.
+42 -42
View File
@@ -284,7 +284,7 @@ enum class ON_SubDHashType : unsigned char
/// <summary>
/// The Topology hash includes component ids, and all topological relationships
/// between vertices, edges, and faces. If two SubDs have the same topology hash,
/// then the the have identical labeled control net topology.
/// then the have identical labeled control net topology.
/// </summary>
Topology = 3,
@@ -844,7 +844,7 @@ public:
/// (vertex_tag = ON_SubDVertexTag::Crease, 2 sectors, EdgeCount() = FaceCount() &gt;= 2),
/// then interior_crease_vertex_sharpness is the maximum edge sharpness at the
/// vertex's end of all smooth edges from both sectors.
/// This paramter is important in special situations that occur
/// This parameter is important in special situations that occur
/// in low level SubD evaluation code where information from only one
/// sector is present. In all other cases, this value doesn't matter as long
/// as interior_crease_vertex_sharpness &lt;= maximum_edge_sharpness_at_vertex.
@@ -986,7 +986,7 @@ public:
/// <summary>
/// If this class was created using the constructor that has a vertex tag
/// and that tag was ON_SubDVertexTag::Smooth or ON_SubDVertexTag::Dart,
/// or ON_SubDVertexTag::Crease, then you you must call this function for
/// or ON_SubDVertexTag::Crease, then you must call this function for
/// every sharp edge connected to the vertex.
/// </summary>
/// <param name="sharpness_at_vertex">
@@ -1262,7 +1262,7 @@ public:
const ON_SubDEdgePtr EdgePtr(const class ON_SubDFace* face, unsigned corner_edge_dex) const;
/// <summary>
/// Get the edge of face that goes from the the previous
/// Get the edge of face that goes from the previous
/// face corner to this face corner. The edge pointer
/// is oriented from PreviousCornerVertex() to CornerVertex().
/// If this is not set, face is nullptr, or face->EdgeCount() != this->EdgeCount(),
@@ -1295,10 +1295,10 @@ public:
/// <summary>
/// Create a SubD face parameter that identifies a point on the face.
/// The parameters (0,0) correspond the the corner vertex cdex.Vertex(face).
/// The parameters (0,0) correspond the corner vertex cdex.Vertex(face).
/// The corner_s parameter runs from the corner vertex to the midpoint of cdex.RightEdge(face).
/// The corner_t parameter runs from the corner vertex to the midpoint of cdex.LeftEdge(face).
/// The parameters (1/2, 1/2) correspond the the center of the face.
/// The parameters (1/2, 1/2) correspond the center of the face.
/// </summary>
/// <param name="cdex">
/// Identifies the face's corner subdivison quad.
@@ -1316,7 +1316,7 @@ public:
);
/// <summary>
/// Create at ON_SubDFaceParameter the corresponds to the the specified quad face parameters.
/// Create at ON_SubDFaceParameter the corresponds to the specified quad face parameters.
/// The quad face parameters for face.Vertex(0) are (0,0).
/// The quad face parameters for face.Vertex(1) are (1,0).
/// The quad face parameters for face.Vertex(2) are (1,1).
@@ -2162,7 +2162,7 @@ public:
point_location - [in]
Used to select control net or limit surface point.
Returns:
The requested vertex point with with EdgeDirection() taken into account.
The requested vertex point with EdgeDirection() taken into account.
ON_3dPoint::NanPoint if relative_vertex_index, Edge() is nullptr, or Edge()->Vertex() is nullptr.
*/
const ON_3dPoint RelativeVertexPoint(
@@ -2200,7 +2200,7 @@ public:
If (relative_vertex_index = 0), returns Edge()->m_sector_coefficient(1-EdgeDirection())
Otherwise ON_SubDSectorType::ErrorSectorCoefficient is returned.
Remarks:
The name "sector coefficient" is used because is is a property of the
The name "sector coefficient" is used because is a property of the
vertex's sector (every edge in vertex sector has the same value at the tagged vertex).
The sector coefficient does not change when a subdivision is applied.
*/
@@ -3976,7 +3976,7 @@ public:
sorted_tags[] - [in]
Array sorted by ON_SubD_ComponentIdTypeAndTag::CompareTypeAndId().
Returns:
If v is in sorted_tags[], the VertexTag() from from sorted_tags[] is returned.
If v is in sorted_tags[], the VertexTag() from sorted_tags[] is returned.
Otherwise v->m_vertex_tag is returned.
*/
static ON_SubDVertexTag OriginalVertexTag(
@@ -3990,7 +3990,7 @@ public:
sorted_tags[] - [in]
Array sorted by ON_SubD_ComponentIdTypeAndTag::CompareTypeAndId().
Returns:
If vertex_id is in sorted_tags[], the VertexTag() from from sorted_tags[] is returned.
If vertex_id is in sorted_tags[], the VertexTag() from sorted_tags[] is returned.
Otherwise ON_SubDVertexTag::Unset is returned.
*/
static ON_SubDVertexTag OriginalVertexTag(
@@ -4004,7 +4004,7 @@ public:
sorted_tags[] - [in]
Array sorted by ON_SubD_ComponentIdTypeAndTag::CompareTypeAndId().
Returns:
If e is in sorted_tags[], the EdgeTag() from from sorted_tags[] is returned.
If e is in sorted_tags[], the EdgeTag() from sorted_tags[] is returned.
Otherwise e->m_edge_tag is returned.
*/
static ON_SubDEdgeTag OriginalEdgeTag(
@@ -4018,7 +4018,7 @@ public:
sorted_tags[] - [in]
Array sorted by ON_SubD_ComponentIdTypeAndTag::CompareTypeAndId().
Returns:
If edge_id is in sorted_tags[], the EdgeTag() from from sorted_tags[] is returned.
If edge_id is in sorted_tags[], the EdgeTag() from sorted_tags[] is returned.
Otherwise ON_SubDEdgeTag::Unset is returned.
*/
static ON_SubDEdgeTag OriginalEdgeTag(
@@ -4032,7 +4032,7 @@ public:
sorted_tags[] - [in]
Array sorted by ON_SubD_ComponentIdTypeAndTag::CompareTypeAndId().
Returns:
If f is in sorted_tags[], the FaceTag() from from sorted_tags[] is returned.
If f is in sorted_tags[], the FaceTag() from sorted_tags[] is returned.
Otherwise 0 is returned.
*/
static unsigned char OriginalFaceTag(
@@ -4046,7 +4046,7 @@ public:
sorted_tags[] - [in]
Array sorted by ON_SubD_ComponentIdTypeAndTag::CompareTypeAndId().
Returns:
If face_id is in sorted_tags[], the FaceTag() from from sorted_tags[] is returned.
If face_id is in sorted_tags[], the FaceTag() from sorted_tags[] is returned.
Otherwise ON_SubDFaceTag::Unset is returned.
*/
static unsigned char OriginalFaceTag(
@@ -4997,19 +4997,19 @@ public:
Double = 2,
/// <summary>
/// This option applies only when the the input is an array of ON_SubDEdgePtrs
/// This option applies only when the input is an array of ON_SubDEdgePtrs
/// that form a single oriented edge chain of manifold interior edges.
/// A single quad is added to the left of the input edges.
/// (The left side of of an oriented interior manifold edge is the face
/// (The left side of an oriented interior manifold edge is the face
/// whose natural boundary orientation is the same as with the ON_SubDEdgePtr direction.)
/// </summary>
HalfLeft = 3,
/// <summary>
/// This option applies only when the the input is an array of ON_SubDEdgePtrs
/// This option applies only when the input is an array of ON_SubDEdgePtrs
/// that form a single oriented edge chain of manifold interior edges.
/// A single quad is added to the right of the input edges.
/// (The right side of of an oriented interior manifold edge is the face
/// (The right side of an oriented interior manifold edge is the face
/// whose natural boundary orientation is opposite the ON_SubDEdgePtr direction.)
/// </summary>
HalfRight = 4,
@@ -5083,7 +5083,7 @@ public:
const ON_SimpleArray<ON_SubDEdgePtr>& edges
);
/// This option applies only when the the input is an array of ON_SubDEdgePtrs
/// This option applies only when the input is an array of ON_SubDEdgePtrs
/// that form a single oriented edge chain. You may use
/// ON_SubDExpandEdgesParameters::IsValidForVariableOffset() to determine if an
/// array of ON_SubDEdgePtrs meets the variable offset requirements.
@@ -5093,7 +5093,7 @@ public:
/*
Description:
This option applies only when the the input is an array of ON_SubDEdgePtrs
This option applies only when the input is an array of ON_SubDEdgePtrs
that form a single oriented edge chain. You may use
ON_SubDExpandEdgesParameters::IsValidForVariableOffset() to determine if an
array of ON_SubDEdgePtrs meets the variable offset requirements.
@@ -5353,7 +5353,7 @@ public:
/// In that case, this edge is used.
/// </summary>
/// <returns>
/// The prefered edge attached to this vertex.
/// The preferred edge attached to this vertex.
/// </returns>
const ON_SubDComponentId VertexEdge() const;
@@ -5362,7 +5362,7 @@ public:
/// In these cases this face is used.
/// </summary>
/// <returns>
/// The prefered face attached to this vertex.
/// The preferred face attached to this vertex.
/// </returns>
const ON_SubDComponentId VertexFace() const;
@@ -5416,7 +5416,7 @@ public:
/// In that case, this face is used.
/// </summary>
/// <returns>
/// The prefered edge attached to this vertex.
/// The preferred edge attached to this vertex.
/// </returns>
const ON_SubDComponentId EdgeFace() const;
@@ -7290,7 +7290,7 @@ public:
Sets ON_SubDComponent MarkBits() to
0: component is not in a symmetry set motif
n>=1:
The component is the the n-th element in the symmetry set
The component is the n-th element in the symmetry set
with n=1 indicating the component in the primary motif.
*/
void SetComponentMarkBitsFromSymmetryMotif() const;
@@ -8440,7 +8440,7 @@ public:
The edge will be on the same level as the vertices.
sharpness - [in]
If edge_tag is ON_SubDEdge::Smooth or ON_SubDEdge::SmoothX, then
the the edge's sharpness is set to sharpness.
the edge's sharpness is set to sharpness.
Otherwise, the sharpness parameter is ignored.
Returns:
Pointer to the allocated edge.
@@ -9691,7 +9691,7 @@ public:
does not match this->SubDTopologyHash(), then this->FacePackingSubDTopologyHash() is updated
to the current value of this->SubDTopologyHash().
If this parameter is false and and this->FacePackingSubDTopologyHash()
If this parameter is false and this->FacePackingSubDTopologyHash()
does not match this->SubDTopologyHash(), then the function returns false.
Returns:
True if FacesArePacked() is true, the quad grids meet all the conditions described above,
@@ -10557,7 +10557,7 @@ public:
double error_return_value
);
// This value is is used to set sector angles when the
// This value is used to set sector angles when the
// actual value is not needed. This occurs at both ends
// of a creased edge and when the end of a smooth edge
// is a smooth vertex.
@@ -10583,7 +10583,7 @@ public:
static const double ErrorSectorTheta; // = -9992.0;
// This value is is used to set edge sector coefficients when the
// This value is used to set edge sector coefficients when the
// actual value is not needed. This occurs at both ends
// of a creased edge and when the end of a smooth edge
// is a smooth vertex.
@@ -13288,7 +13288,7 @@ private:
/// <summary>
/// ON_SubDMesh is used to store a high density traditional quad mesh
/// of a SubD surface or a mesh of a SubD control net.
/// In general, is is better to use an ON_SubDMeshFragmentIterator(subd)
/// In general, is better to use an ON_SubDMeshFragmentIterator(subd)
/// that iterates the ON_MeshFragments cached on the ON_SubD.
/// </summary>
class ON_CLASS ON_SubDMesh
@@ -14610,7 +14610,7 @@ public:
/// The bEndCheck parameter controls what type of sharpness query
/// is performed.
/// Note that the vertex subdivision point is affected by attached
/// sharp edges when IsSharp(true) is is true (ON_Vertex::VertexSharpness() &gt; 0).
/// sharp edges when IsSharp(true) is true (ON_Vertex::VertexSharpness() &gt; 0).
/// The vertex limit surface point is affected by edge sharpenss
/// when IsSharp(false) is true.
/// See ON_SubDEdge::IsSharp() for more information about sharp edges.
@@ -14631,9 +14631,9 @@ public:
/// See ON_SubDEdge::IsSharp() for more information about sharp edges.
/// </summary>
/// <returns>
/// If the vertex is smooth and and two or more attached edges have positive end sharpness
/// If the vertex is smooth and two or more attached edges have positive end sharpness
/// at this vertex, then the maximum edge end sharpness at this vertex is returned.
/// If the vertex is a dart or crease and and one or more attached edges have positive end sharpness
/// If the vertex is a dart or crease and one or more attached edges have positive end sharpness
/// at this vertex, then the maximum edge end sharpness at this vertex is returned.
/// Otherwise 0.0 is returned.
/// </returns>
@@ -14707,9 +14707,9 @@ public:
/// in place of the ordinary subdivision point.
/// </param>
/// <returns>
/// If the vertex is smooth and and two or more attached edges have positive end sharpness
/// If the vertex is smooth and two or more attached edges have positive end sharpness
/// at this vertex, then the maximum edge end sharpness at this vertex is returned.
/// If the vertex is a dart or crease and and one or more attached edges have positive end sharpness
/// If the vertex is a dart or crease and one or more attached edges have positive end sharpness
/// at this vertex, then the maximum edge end sharpness at this vertex is returned.
/// Otherwise 0.0 is returned.
///< / returns>
@@ -15950,8 +15950,8 @@ public:
/// Sharp edges are a blend between smooth edges and crease edges.
/// The limit surface has a continuous normal along a sharp edge.
/// A sharp edge has a smooth tag,
/// has sharpness &gt; 0 at at least one end,
/// and has sharpness &lt; ON_SubDEdgeSharpness::MaximumValue at at least one end.
/// has sharpness &gt; 0 at least one end,
/// and has sharpness &lt; ON_SubDEdgeSharpness::MaximumValue at least one end.
/// Sharpness has no meaning for edges with crease tags.
/// Both sharpness values are zero for an ordinary smooth edge.
/// Edge sharpness steadily decreases during subdivision and becomes zero after at most ON_SubDEdgeSharpness::MaximumValue subdivisions.
@@ -20186,7 +20186,7 @@ public:
A positive value increases vertex bias in some situations; otherwise vertex_depth_bias is ignored.
When pick_type is ON_PickType::PointPick and either
an edge and a vertex of that edge or a face and a vertex of that face are being compared,
then then vertex_depth_bias is added to the vertex hit depth before comparing depths.
then vertex_depth_bias is added to the vertex hit depth before comparing depths.
When the pick is happening in a perspective view, it is important to choose a vertex_depth_bias
appropriate for the depth in the view frustum.
@@ -20194,7 +20194,7 @@ public:
When in doubt pass 0.0.
A positive value increases edge bias in some situations; otherwise vertex_depth_bias is ignored.
When pick_type is ON_PickType::PointPick and a face and an edge of that face are being compared,
then then edge_depth_bias is added to the edge hit depth before comparing depths.
then edge_depth_bias is added to the edge hit depth before comparing depths.
When the pick is happening in a perspective view, it is important to choose an edge_depth_bias
appropriate for the depth in the view frustum.
@@ -20216,7 +20216,7 @@ public:
// m_component_ptr will be face, edge or vertex
ON_SubDComponentPtr m_component_ptr = ON_SubDComponentPtr::Null;
//// If the point is on a a face that does not have the ordinary number of
//// If the point is on a face that does not have the ordinary number of
//// edges for the subdivision type, then m_face_corner_index identifies the
//// subfragment corner.
//unsigned int m_face_corner_index = ON_UNSET_UINT_INDEX;
@@ -20332,7 +20332,7 @@ public:
// edges E[1], ..., E[N-1] are smooth with sharpness = 0,
// and all faces F[i] are quads.
//
// If If "C" is a boundary vertex (m_vertex_tag is crease or corner), the conditions
// If "C" is a boundary vertex (m_vertex_tag is crease or corner), the conditions
// listed above are satisfied except
// E[0] and E[N-1] are crease edges,
// E[1], ..., E[N-2] are smooth edges with sharpness = 0,
@@ -20349,7 +20349,7 @@ public:
// m_S = R x R subdivision matrix
// If (vertexR[0], ..., vertexR[R-1]) is a list of standard vertex ring points,
// then then the location of the subdivided ring points
// then the location of the subdivided ring points
// (vertexR1[0], ..., vertexR1[R-1]) can be calculated from m_S.
// vertexR1[i] = m_S[i][0]*vertexR[0] + ... + m_S[i][R-1]*vertexR[R-1]
const double* const* m_S = nullptr;
+3 -3
View File
@@ -3263,7 +3263,7 @@ public:
/// <summary>
/// Initialize this ON_SubDVertexQuadSector topology and component tags
/// assuming the the smooth edges attached to the center vertex have
/// assuming the smooth edges attached to the center vertex have
/// a smooth outer ring vertex.
/// </summary>
/// If center_vertex_tag is ON_SubDVertexTag::Smooth or ON_SubDVertexTag::Dart,
@@ -3318,7 +3318,7 @@ public:
/// <summary>
/// Initialize this ON_SubDVertexQuadSector topology and component tags
/// assuming the the smooth edges attached to the center vertex have
/// assuming the smooth edges attached to the center vertex have
/// a smooth outer ring vertex and are not sharp.
/// </summary>
/// If vertex_tag is ON_SubDVertexTag::Smooth or ON_SubDVertexTag::Dart,
@@ -3366,7 +3366,7 @@ public:
/// <summary>
/// Initialize this ON_SubDVertexQuadSector topology and component tags
/// assuming the the smooth edges attached to the center vertex have
/// assuming the smooth edges attached to the center vertex have
/// a smooth outer ring vertex.
/// </summary>
/// If center_vertex_tag is ON_SubDVertexTag::Smooth or ON_SubDVertexTag::Dart,
+1 -1
View File
@@ -891,7 +891,7 @@ public:
Parameters:
surface - [in]
If surface is not null, then it is used to set the surface properties.
If surface is null, then all surface properties are set to to zero.
If surface is null, then all surface properties are set to zero.
Remarks:
Does not modify the value of m_tag.
*/
+3 -3
View File
@@ -95,7 +95,7 @@ public:
Unset = 0,
/// <summary>
/// The symmetry is associated with an object is is applied to.
/// The symmetry is associated with an object is applied to.
/// If that object is transformed, the symmetry's planes and rotation axes
/// are also transformed.
/// </summary>
@@ -175,7 +175,7 @@ public:
InsideRotateAndReflect = 11,
/// <summary>
/// Outside the primary motif region and and on one of the fixed point planes
/// Outside the primary motif region and on one of the fixed point planes
/// Applies to ReflectAndRotate symmetries.
/// </summary>
OutsideRotateAndReflect = 12
@@ -279,7 +279,7 @@ public:
transformation - [in]
fixed_plane - [in]
Returns:
True if the the transformation and fixed_plane are valid and
True if the transformation and fixed_plane are valid and
the transformation fixes points on the plane.
Remarks:
The value ON_Symmetry::ZeroTolerance is used for all "zero tolerances."
+1 -1
View File
@@ -626,7 +626,7 @@ typedef ON__UINT32 wchar_t;
// Whenever possible use native OS tools for font and glyph support.
// Things like names, outlines, metrics, UNICODE mapping will generally
// work better align with user's experiences on that platform.
// Freetype is basically a platform neutral font file file reading toolkit
// Freetype is basically a platform neutral font file reading toolkit
// and has all the limitations that arise from that approach to complex
// information modern OSs manage in complicated ways.
+3 -3
View File
@@ -43,7 +43,7 @@ ON_TextRun::ON_TextRun(bool bManagedTextRun)
ON_TextRun* ON_TextRun::GetManagedTextRun()
{
// .NET wrappers manage objects with test runs and .NET GC runs in its own thread,
// .NET wrappers manage objects with text runs and .NET GC runs in its own thread,
// so text run allocation/return using the global ON_TextRunPool::thePool resource
// must be thread safe.
void* p = ON_TextRunPool::thePool.ThreadSafeAllocateDirtyElement();
@@ -80,7 +80,7 @@ bool ON_TextRun::ReturnManagedTextRun(
{
run->Internal_Destroy();
run->m_active_status = 1;
// .NET wrappers manage objects with test runs and .NET GC runs in its own thread,
// .NET wrappers manage objects with text runs and .NET GC runs in its own thread,
// so text run allocation/return using the global ON_TextRunPool::thePool resource
// must be thread safe.
ON_TextRunPool::thePool.ThreadSafeReturnElement(run);
@@ -1133,7 +1133,7 @@ private:
}
if (0.0 > linewidth)
{
ON_ERROR("WrapTextRun: Linewidtht < 0.");
ON_ERROR("WrapTextRun: Linewidth < 0.");
linewidth = 0.0;
}
+2 -2
View File
@@ -222,7 +222,7 @@ public:
count - [out] number of tiles
offset - [out] offset of the tile
Returns:
True if if the m_uvw matrix had entries that were compatible
True if the m_uvw matrix had entries that were compatible
with tiling.
*/
bool IsTiled( int dir, double* count, double* offset ) const;
@@ -531,7 +531,7 @@ public:
// If an ON_Material m_textures[] array has more than
// one texture, the textures are blended, and the textures
// have different m_blend_order values, the the texture
// have different m_blend_order values, the texture
// with the smaller m_blend_order is first.
int m_blend_order = 0;
};
+2 -2
View File
@@ -232,7 +232,7 @@ public:
/// <param name="aggregate_edge_demographics">
/// Value made by bitwise or of ON_ComponentAttributes::EdgeAttributes values for every edge in the object.
/// </param>
/// <returns>If for every edge edge with exactly two faces, those two faces have compatible orientations, then true is returned.
/// <returns>If for every edge with exactly two faces, those two faces have compatible orientations, then true is returned.
/// Otherwise, false is returned.
///</returns>
static bool IsOriented(
@@ -245,7 +245,7 @@ public:
/// <param name="aggregate_edge_component_attributes">
/// Value made by bitwise or of ON_ComponentAttributes::EdgeAttributes values for every edge in the object.
/// </param>
/// <returns>If there is an edge edge with exactly two faces and those faces have incompatible orientations,
/// <returns>If there is an edge with exactly two faces and those faces have incompatible orientations,
/// then true is returned. Otherwise, false is returned.
///</returns>
static bool IsNotOriented(
+15 -15
View File
@@ -1421,7 +1421,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -1559,7 +1559,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -1696,7 +1696,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -1833,7 +1833,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -1986,7 +1986,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -2124,7 +2124,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -2274,7 +2274,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -2424,7 +2424,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -2578,7 +2578,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -2744,7 +2744,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -2891,7 +2891,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -3039,7 +3039,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -3187,7 +3187,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -3335,7 +3335,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
@@ -3483,7 +3483,7 @@ Description:
Parameters:
bTestByteOrder - [in]
If bTestByteOrder is true and the the input buffer is a
If bTestByteOrder is true and the input buffer is a
byte order mark (BOM), then the BOM is skipped. It the value
of the BOM is byte swapped, then subsequent input elements are
byte swapped before being decoded. Specifically:
+1 -1
View File
@@ -312,7 +312,7 @@ public:
// For files written with earlier versions of opennurbs, these
// values are set from the archive containing the user data.
// The purpose of this version information is to have it accompany
// unknown user data so that if is is eventually read by the plug-in
// unknown user data so that if is eventually read by the plug-in
// an ON_BinaryArchive with correct version information can be
// passed to the plug-in's reading code. In archives, these values
// are stored in the TCODE_USER_TABLE_RECORD_HEADER chunk.
+3 -3
View File
@@ -535,7 +535,7 @@ public:
If true, the frustum will be adjusted so top = -bottom.
target_distance - [in]
If projection is not perspective or target_distance
is ON_UNSET_VALUE, this this parameter is ignored.
is ON_UNSET_VALUE, this parameter is ignored.
If the projection is perspective and target_distance
is not ON_UNSET_VALUE, then it must be > 0.0 and
it is used to determine which plane in the old
@@ -1619,7 +1619,7 @@ public:
0 = No part of the of the transformed bounding box
is in the view frustum or the view camera and frustum
have not been set.
1 = A portion of of the transformed bounding box is
1 = A portion of the transformed bounding box is
in the view frustum
2 = The entire transformed bounding box is in the
view frustum.
@@ -1712,7 +1712,7 @@ protected:
private:
// When this id matches the viewport id saved in an ON_DisplayMaterialRef
// list in ON_3dmObjectAttributes, then the the display material is used
// list in ON_3dmObjectAttributes, then the display material is used
// for that object in this view.
ON_UUID m_viewport_id = ON_nil_uuid;
+1 -1
View File
@@ -1058,7 +1058,7 @@ Details:
where R_*(angle) is rotation of angle radians about the corresponding *-world coordinate axis.
Returns false if this is not a rotation.
Notes:
alpha and gamma are in the range (-pi, pi] while beta in in the range [0, pi]
alpha and gamma are in the range (-pi, pi] while beta in the range [0, pi]
*/
bool GetEulerZYZ(double& alpha, double& beta, double& gamma )const;