Fix various typos
Found via `codespell -q 3 -S ./res/locales,./extlib -L asign,ba,hsi,mata,tothe`pull/1077/head
parent
ddb76324af
commit
37da0f3341
|
@ -16,7 +16,7 @@ Sketching:
|
||||||
|
|
||||||
MISC:
|
MISC:
|
||||||
|
|
||||||
* When linking circuit boards (IDF .emn files) show keepout regions as construction entites.
|
* When linking circuit boards (IDF .emn files) show keepout regions as construction entities.
|
||||||
|
|
||||||
Performance:
|
Performance:
|
||||||
|
|
||||||
|
|
|
@ -9,25 +9,25 @@ by pointers from the entity (font, extra points, etc...)
|
||||||
|
|
||||||
Entities in a sketch are kept in a global array (IdList) referenced by a unique
|
Entities in a sketch are kept in a global array (IdList) referenced by a unique
|
||||||
Id (handle) and can be looked up by Id in log(n) time via binary search. In
|
Id (handle) and can be looked up by Id in log(n) time via binary search. In
|
||||||
order to use binary seach the array must be kept in order sorted by Id. One
|
order to use binary search the array must be kept in order sorted by Id. One
|
||||||
problem is that insertion takes O(n) time because half the list (on average)
|
problem is that insertion takes O(n) time because half the list (on average)
|
||||||
must be shifted to make room for a new item.
|
must be shifted to make room for a new item.
|
||||||
|
|
||||||
The IdList class is a template and is used for more than entites.
|
The IdList class is a template and is used for more than entities.
|
||||||
|
|
||||||
EntityMap:
|
EntityMap:
|
||||||
==========
|
==========
|
||||||
Another important structure is the EntityMap and EntityKey defined in sketch.h
|
Another important structure is the EntityMap and EntityKey defined in sketch.h
|
||||||
This is what allows SovleSpace to update groups when earlier groups in the
|
This is what allows SovleSpace to update groups when earlier groups in the
|
||||||
sketch are changed. If a rectangle is extruded to a box and items are
|
sketch are changed. If a rectangle is extruded to a box and items are
|
||||||
constrained to entites on that box, the user can go back to the sketch and
|
constrained to entities on that box, the user can go back to the sketch and
|
||||||
modify it. Entites can be added, modified an even deleted. So long as the
|
modify it. Entities can be added, modified an even deleted. So long as the
|
||||||
entites that are later used to build upon are kept the later extrude group will
|
entities that are later used to build upon are kept the later extrude group will
|
||||||
pick up the changes from the 2D sketch and anything build on it will remain.
|
pick up the changes from the 2D sketch and anything build on it will remain.
|
||||||
|
|
||||||
The way this works is that each group has a member called remap, which is one of
|
The way this works is that each group has a member called remap, which is one of
|
||||||
these maps. This is where my understanding is fuzzy. At the end of Group.cpp is
|
these maps. This is where my understanding is fuzzy. At the end of Group.cpp is
|
||||||
a function called Group::CopyEntity() which is used to make new sketch entites
|
a function called Group::CopyEntity() which is used to make new sketch entities
|
||||||
when a group is created. These are generally copies of entities in the previous
|
when a group is created. These are generally copies of entities in the previous
|
||||||
group, but there are exceptions. A point will be used to generate a line when
|
group, but there are exceptions. A point will be used to generate a line when
|
||||||
extruding a 2D sketch. A point will also be "copied" to a circle for a Lathe
|
extruding a 2D sketch. A point will also be "copied" to a circle for a Lathe
|
||||||
|
@ -35,7 +35,7 @@ group. For this reason, the entity key is derived by combining its previous key
|
||||||
with something often called the CopyNumber or just remap (unfortunate).
|
with something often called the CopyNumber or just remap (unfortunate).
|
||||||
|
|
||||||
When a group is regenerated (the first time, or after a previous one is
|
When a group is regenerated (the first time, or after a previous one is
|
||||||
modified) entites are copied from the old group to the new one. For Step
|
modified) entities are copied from the old group to the new one. For Step
|
||||||
Translating and Rotating there may be many copies, and the copy number is
|
Translating and Rotating there may be many copies, and the copy number is
|
||||||
literally N for the Nth copy except for the last one which gets an enum - it is
|
literally N for the Nth copy except for the last one which gets an enum - it is
|
||||||
common to constrain the last item, so it gets a large unique number so that
|
common to constrain the last item, so it gets a large unique number so that
|
||||||
|
@ -45,5 +45,5 @@ Remap that was created the same way. This is how constructions are preserved
|
||||||
across underlying changes.
|
across underlying changes.
|
||||||
|
|
||||||
There are some hard limits used in the hash table for the remap mechanism which
|
There are some hard limits used in the hash table for the remap mechanism which
|
||||||
limit the number of entites in a group (but not the global sketch).
|
limit the number of entities in a group (but not the global sketch).
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ POINT_N_ROT_TRANS: Rotates a point via quaternion param[3],param[4],param[5],par
|
||||||
|
|
||||||
POINT_N_COPY: A non-transformed copy of a point - numeric copy?
|
POINT_N_COPY: A non-transformed copy of a point - numeric copy?
|
||||||
|
|
||||||
POINT_N_ROT_AA: A point rotated arount point param[0],param[1],param[2] Where the
|
POINT_N_ROT_AA: A point rotated around point param[0],param[1],param[2] Where the
|
||||||
angle is given by param[3]*timesApplied (times 2?) and the axis
|
angle is given by param[3]*timesApplied (times 2?) and the axis
|
||||||
of rotation defined by param[4],param[5],param[6]
|
of rotation defined by param[4],param[5],param[6]
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@ the entity itself.
|
||||||
The ForceTo() functions are shortcuts for using the solver. They are passed the
|
The ForceTo() functions are shortcuts for using the solver. They are passed the
|
||||||
desired location of a point (or orientation of a normal...) and have the opportunity
|
desired location of a point (or orientation of a normal...) and have the opportunity
|
||||||
to back-calculate what the group parameters should be to place it there. This is
|
to back-calculate what the group parameters should be to place it there. This is
|
||||||
used for mouse dragging of copied entites. It is notable that the constraints will
|
used for mouse dragging of copied entities. It is notable that the constraints will
|
||||||
still be applied afterward, but this is a good shortcut.
|
still be applied afterward, but this is a good shortcut.
|
||||||
|
|
||||||
When creating a new entity transformation, the first thing to do is define the
|
When creating a new entity transformation, the first thing to do is define the
|
||||||
|
|
|
@ -281,7 +281,7 @@ void GraphicsWindow::PasteClipboard(Vector trans, double theta, double scale) {
|
||||||
}
|
}
|
||||||
case Constraint::Type::HORIZONTAL:
|
case Constraint::Type::HORIZONTAL:
|
||||||
case Constraint::Type::VERTICAL:
|
case Constraint::Type::VERTICAL:
|
||||||
// When rotating 90 or 270 degrees, swap the vertical / horizontal constaints
|
// When rotating 90 or 270 degrees, swap the vertical / horizontal constraints
|
||||||
if (EXACT(fmod(theta + (PI/2), PI) == 0)) {
|
if (EXACT(fmod(theta + (PI/2), PI) == 0)) {
|
||||||
if(c.type == Constraint::Type::HORIZONTAL) {
|
if(c.type == Constraint::Type::HORIZONTAL) {
|
||||||
c.type = Constraint::Type::VERTICAL;
|
c.type = Constraint::Type::VERTICAL;
|
||||||
|
|
|
@ -370,7 +370,7 @@ static void PopulateMenuWithPathnames(Platform::MenuRef menu,
|
||||||
void GraphicsWindow::PopulateRecentFiles() {
|
void GraphicsWindow::PopulateRecentFiles() {
|
||||||
PopulateMenuWithPathnames(openRecentMenu, SS.recentFiles, [](const Platform::Path &path) {
|
PopulateMenuWithPathnames(openRecentMenu, SS.recentFiles, [](const Platform::Path &path) {
|
||||||
// OkayToStartNewFile could mutate recentFiles, which will invalidate path (which is a
|
// OkayToStartNewFile could mutate recentFiles, which will invalidate path (which is a
|
||||||
// refererence into the recentFiles vector), so take a copy of it here.
|
// reference into the recentFiles vector), so take a copy of it here.
|
||||||
Platform::Path pathCopy(path);
|
Platform::Path pathCopy(path);
|
||||||
if(!SS.OkayToStartNewFile()) return;
|
if(!SS.OkayToStartNewFile()) return;
|
||||||
SS.Load(pathCopy);
|
SS.Load(pathCopy);
|
||||||
|
|
|
@ -54,7 +54,7 @@ static std::vector <std::string> splitString(const std::string line) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
// Functions for linking an IDF file - we need to create entites that
|
// Functions for linking an IDF file - we need to create entities that
|
||||||
// get remapped into a linked group similar to linking .slvs files
|
// get remapped into a linked group similar to linking .slvs files
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
@ -291,9 +291,9 @@ static void MakeBeziersForArcs(SBezierList *sbl, Vector center, Vector pa, Vecto
|
||||||
namespace SolveSpace {
|
namespace SolveSpace {
|
||||||
|
|
||||||
// Here we read the important section of an IDF file. SolveSpace Entities are directly created by
|
// Here we read the important section of an IDF file. SolveSpace Entities are directly created by
|
||||||
// the funcions above, which is only OK because of the way linking works. For example points do
|
// the functions above, which is only OK because of the way linking works. For example points do
|
||||||
// not have handles for solver parameters (coordinates), they only have their actPoint values
|
// not have handles for solver parameters (coordinates), they only have their actPoint values
|
||||||
// set (or actNormal or actDistance). These are incompete entites and would be a problem if
|
// set (or actNormal or actDistance). These are incomplete entities and would be a problem if
|
||||||
// they were part of the sketch, but they are not. After making a list of them here, a new group
|
// they were part of the sketch, but they are not. After making a list of them here, a new group
|
||||||
// gets created from copies of these. Those copies are complete and part of the sketch group.
|
// gets created from copies of these. Those copies are complete and part of the sketch group.
|
||||||
bool LinkIDF(const Platform::Path &filename, EntityList *el, SMesh *m, SShell *sh) {
|
bool LinkIDF(const Platform::Path &filename, EntityList *el, SMesh *m, SShell *sh) {
|
||||||
|
|
|
@ -1229,7 +1229,7 @@ public:
|
||||||
sscheck(GetMonitorInfo(MonitorFromRect(&rc, MONITOR_DEFAULTTONEAREST), &mi));
|
sscheck(GetMonitorInfo(MonitorFromRect(&rc, MONITOR_DEFAULTTONEAREST), &mi));
|
||||||
|
|
||||||
// If it somehow ended up off-screen, then put it back.
|
// If it somehow ended up off-screen, then put it back.
|
||||||
// and make it visible by at least this portion of the scrren
|
// and make it visible by at least this portion of the screen
|
||||||
const LONG movein = 40;
|
const LONG movein = 40;
|
||||||
|
|
||||||
RECT mrc = mi.rcMonitor;
|
RECT mrc = mi.rcMonitor;
|
||||||
|
|
|
@ -349,7 +349,7 @@ static const char *DimToString(int dim) {
|
||||||
}
|
}
|
||||||
static std::pair<int, std::string> SelectSIPrefixMm(int ord, int dim) {
|
static std::pair<int, std::string> SelectSIPrefixMm(int ord, int dim) {
|
||||||
// decide what units to use depending on the order of magnitude of the
|
// decide what units to use depending on the order of magnitude of the
|
||||||
// measure in meters and the dimmension (1,2,3 lenear, area, volume)
|
// measure in meters and the dimension (1,2,3 lenear, area, volume)
|
||||||
switch(dim) {
|
switch(dim) {
|
||||||
case 0:
|
case 0:
|
||||||
case 1:
|
case 1:
|
||||||
|
|
|
@ -29,7 +29,7 @@ void SCurve::GetAxisAlignedBounding(Vector *ptMax, Vector *ptMin) const {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// We will be inserting other curve verticies into our curves to split them.
|
// We will be inserting other curve vertices into our curves to split them.
|
||||||
// This is helpful when curved surfaces become tangent along a trim and the
|
// This is helpful when curved surfaces become tangent along a trim and the
|
||||||
// usual tests for curve-surface intersection don't split the curve at a vertex.
|
// usual tests for curve-surface intersection don't split the curve at a vertex.
|
||||||
// This is faster than the previous version that split at surface corners and
|
// This is faster than the previous version that split at surface corners and
|
||||||
|
@ -796,7 +796,7 @@ void SShell::MakeFromBoolean(SShell *a, SShell *b, SSurface::CombineAs type) {
|
||||||
b->MakeClassifyingBsps(NULL);
|
b->MakeClassifyingBsps(NULL);
|
||||||
|
|
||||||
// Copy over all the original curves, splitting them so that a
|
// Copy over all the original curves, splitting them so that a
|
||||||
// piecwise linear segment never crosses a surface from the other
|
// piecewise linear segment never crosses a surface from the other
|
||||||
// shell.
|
// shell.
|
||||||
a->CopyCurvesSplitAgainst(/*opA=*/true, b, this);
|
a->CopyCurvesSplitAgainst(/*opA=*/true, b, this);
|
||||||
b->CopyCurvesSplitAgainst(/*opA=*/false, a, this);
|
b->CopyCurvesSplitAgainst(/*opA=*/false, a, this);
|
||||||
|
|
|
@ -817,7 +817,7 @@ void SCurve::RemoveShortSegments(SSurface *srfA, SSurface *srfB) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the curve is exact and points are >0.05 appart wrt t, point is there
|
// if the curve is exact and points are >0.05 apart wrt t, point is there
|
||||||
// deliberately regardless of chord tolerance (ex: small circles)
|
// deliberately regardless of chord tolerance (ex: small circles)
|
||||||
tprev = t = tnext = 0;
|
tprev = t = tnext = 0;
|
||||||
if (isExact) {
|
if (isExact) {
|
||||||
|
|
|
@ -426,7 +426,7 @@ void SContour::UvTriangulateInto(SMesh *m, SSurface *srf) {
|
||||||
if (i == l.n-1) {
|
if (i == l.n-1) {
|
||||||
end = true;
|
end = true;
|
||||||
}
|
}
|
||||||
if (end) { // triangulate the fan and tag the verticies
|
if (end) { // triangulate the fan and tag the vertices
|
||||||
if (j > 3) {
|
if (j > 3) {
|
||||||
Vector center = l[pstart+1].p.Plus(l[pstart+j-1].p).ScaledBy(0.5);
|
Vector center = l[pstart+1].p.Plus(l[pstart+j-1].p).ScaledBy(0.5);
|
||||||
for (int x=0; x<j; x++) {
|
for (int x=0; x<j; x++) {
|
||||||
|
@ -597,11 +597,11 @@ void SPolygon::UvGridTriangulateInto(SMesh *mesh, SSurface *srf) {
|
||||||
srf->MakeTriangulationGridInto(&lj, 0, 1, /*swapped=*/false, 0);
|
srf->MakeTriangulationGridInto(&lj, 0, 1, /*swapped=*/false, 0);
|
||||||
|
|
||||||
// force 2nd order grid to have at least 4 segments in each direction
|
// force 2nd order grid to have at least 4 segments in each direction
|
||||||
if ((li.n < 5) && (srf->degm>1)) { // 4 segments minimun
|
if ((li.n < 5) && (srf->degm>1)) { // 4 segments minimum
|
||||||
li.Clear();
|
li.Clear();
|
||||||
li.Add(&v[0]);li.Add(&v[1]);li.Add(&v[2]);li.Add(&v[3]);li.Add(&v[4]);
|
li.Add(&v[0]);li.Add(&v[1]);li.Add(&v[2]);li.Add(&v[3]);li.Add(&v[4]);
|
||||||
}
|
}
|
||||||
if ((lj.n < 5) && (srf->degn>1)) { // 4 segments minimun
|
if ((lj.n < 5) && (srf->degn>1)) { // 4 segments minimum
|
||||||
lj.Clear();
|
lj.Clear();
|
||||||
lj.Add(&v[0]);lj.Add(&v[1]);lj.Add(&v[2]);lj.Add(&v[3]);lj.Add(&v[4]);
|
lj.Add(&v[0]);lj.Add(&v[1]);lj.Add(&v[2]);lj.Add(&v[3]);lj.Add(&v[4]);
|
||||||
}
|
}
|
||||||
|
@ -681,7 +681,7 @@ void SPolygon::UvGridTriangulateInto(SMesh *mesh, SSurface *srf) {
|
||||||
if (!bottom[j]) // add our own bottom edge
|
if (!bottom[j]) // add our own bottom edge
|
||||||
holes.AddEdge(a, b);
|
holes.AddEdge(a, b);
|
||||||
} else {
|
} else {
|
||||||
if (prev_flag) // add our left neighbots right edge
|
if (prev_flag) // add our left neighbors right edge
|
||||||
holes.AddEdge(a, d);
|
holes.AddEdge(a, d);
|
||||||
if (bottom[j]) // add our bottom neighbors top edge
|
if (bottom[j]) // add our bottom neighbors top edge
|
||||||
holes.AddEdge(b, a);
|
holes.AddEdge(b, a);
|
||||||
|
|
|
@ -579,7 +579,7 @@ void TextWindow::ShowGroupSolveInfo() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(g->solved.timeout) {
|
if(g->solved.timeout) {
|
||||||
Printf(true, "%FxSome items in list have been ommitted%Fd");
|
Printf(true, "%FxSome items in list have been omitted%Fd");
|
||||||
Printf(false, "%Fxbecause the operation timed out.%Fd");
|
Printf(false, "%Fxbecause the operation timed out.%Fd");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -348,8 +348,8 @@ void TextWindow::ClearScreen() {
|
||||||
rows = 0;
|
rows = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This message was addded when someone had too many fonts for the text window
|
// This message was added when someone had too many fonts for the text window
|
||||||
// Scrolling seemed to be broken, but was actaully at the MAX_ROWS.
|
// Scrolling seemed to be broken, but was actually at the MAX_ROWS.
|
||||||
static const char* endString = " **** End of Text Screen ****";
|
static const char* endString = " **** End of Text Screen ****";
|
||||||
|
|
||||||
void TextWindow::Printf(bool halfLine, const char *fmt, ...) {
|
void TextWindow::Printf(bool halfLine, const char *fmt, ...) {
|
||||||
|
|
Loading…
Reference in New Issue