Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
David Thompson
SMTK
Commits
93cdcb11
Commit
93cdcb11
authored
Nov 10, 2015
by
David Thompson
Browse files
Progress on face creation.
parent
e8dabd05
Changes
2
Hide whitespace changes
Inline
Side-by-side
smtk/bridge/polygon/operators/CreateFaces.cxx
View file @
93cdcb11
...
...
@@ -47,24 +47,48 @@ smtk::model::OperatorResult CreateFaces::operateInternal()
{
case
0
:
// points, coordinates, offsets
{
// create holes (as specified by offsets)
// create polygon_with_holes
// make sure to *not* generate keyhole edges
// traverse resulting polygon
// identify pre-existing edges and split them as required?
// identify pre-existing model vertices from points
// verify that existing edges/faces incident to model vertices
// do not impinge on proposed edge/face
// run edge-creation pre-processing on each point-sequence?
// determine sub-sequences of points that will
// (a) form new edges
// (b) make use of existing edges (with orientation)
// determine loop nesting and edge splits required by intersecting loops
// report point sequences, model vertices (existing, imposed by intersections, non-manifold), loops w/ nesting
// ---
// create new vertices as required
// create edges on point sequences
// modify/create vertex uses
// create chains
// create edge uses
// create loops
// create faces
}
break
;
case
1
:
// edges,
offset
s
case
1
:
// edges,
points, coordinate
s
{
// create holes
// create polygon_with_holes
// make sure to *not* generate keyhole edges
// traverse resulting polygon
// identify pre-existing edges and split them as required?
// for each edge
// for each model vertex
// walk loops where vertices have no face, aborting walk if an unselected edge is found.
// mark traversed regions and do not re-traverse
// OR IF NO MODEL VERTICES
// edge must be periodic and oriented properly... treat it as a loop to bound a hole+/^face-filling-the-hole.
// mark traversed regions and do not re-traverse
// determine loop nesting and edge splits required by intersecting loops
// report model vertices (imposed by intersections, non-manifold), loops w/ nesting
// ---
// create new vertices as required
// modify vertex uses
// create edge uses
// create loops
// create faces
}
break
;
case
2
:
// all non-overlapping
{
// Same as case 1 but with the set of all edges in model.
//
// Create a union-find struct
// for each "model" vertex
// for each edge attached to each vertex
...
...
smtk/bridge/polygon/operators/CreateFaces.sbt
View file @
93cdcb11
...
...
@@ -12,13 +12,12 @@
and
used
in
place
of
those
specifying
the
face
.
</
DetailedDescription
>
<
AssociationsDef
Name
=
"model"
NumberOfRequiredValues
=
"1"
>
<
MembershipMask
>
model
</
MembershipMask
>
<
BriefDescription
>
The
model
to
which
faces
should
be
added
.</
BriefDescription
>
<
MembershipMask
>
model
|
edge
</
MembershipMask
>
<
BriefDescription
>
The
model
to
which
faces
should
be
added
(
or
edges
to
collect
into
a
face
)
.</
BriefDescription
>
<
DetailedDescription
>
The
model
to
which
faces
should
be
added
.
This
is
required
in
order
to
project
point
coordinates
into
the
model
plane
properly
and
perform
intersection
tests
.
The
model
to
which
faces
should
be
added
or
the
edges
that
form
the
boundary
of
a
face
(
when
the
construction
method
is
"bounding edges"
).
</
DetailedDescription
>
</
AssociationsDef
>
<
ItemDefinitions
>
...
...
@@ -94,10 +93,11 @@
</
Structure
>
<!--
Option
1
:
edges
and
offsets
-->
<Structure>
<Value
Enum
=
"edge
id
s"
>
1
</
Value
>
<Value
Enum
=
"edges"
>
1
</
Value
>
<
Items
>
<
Item
>
edges
</
Item
>
<
Item
>
offsets
</
Item
>
<
Item
>
points
</
Item
>
<
Item
>
coordinates
</
Item
>
</
Items
>
</
Structure
>
<!--
Option
2
:
all
possible
faces
-->
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment