01:12.44 |
brlcad |
waves back to
PrezKennedy |
01:13.29 |
brlcad |
maths22: that was almost certainly a
registration predating the new checks |
01:14.27 |
brlcad |
maths22: that's how a lot of the spammer
systems work, registers an account and comes back to post X months
later to get past spam tests looking at how long ago an account was
created |
03:03.13 |
brlcad |
Posterdati: you can apply an arbitrary
transformation matrix with ON_Xform |
03:03.24 |
brlcad |
should just work fine |
03:03.45 |
brlcad |
see opennurbs_xform.h |
03:31.35 |
maths22 |
yep. That user was created on January
7 |
03:49.15 |
brlcad |
probably should just cull out all users with
length greater than the current limit |
07:51.05 |
*** join/#brlcad witness
(uid10044@gateway/web/irccloud.com/x-laisyrdfbuutpilc) |
07:51.05 |
*** join/#brlcad Notify
(~notify@66-118-151-70.static.sagonet.net) |
11:32.20 |
Posterdati |
hi |
11:40.19 |
Posterdati |
I need to perform a taper transformation, so
I applied a scale(plane, sx, sy, sz) along a path, but my object
become flat along that path |
11:40.21 |
Posterdati |
:( |
12:19.13 |
brlcad |
Posterdati: did you see my reply? |
12:19.34 |
brlcad |
you can apply any transformation matrix,
including one that tapers |
12:27.12 |
Posterdati |
well |
12:27.26 |
Posterdati |
I used a scale along a vector and it
worked |
12:27.31 |
Posterdati |
but how apply a shear? |
12:27.41 |
Posterdati |
I saw that it uses a plane |
12:27.44 |
brlcad |
apply a shear matrix :) |
12:27.51 |
Posterdati |
how does it work? |
12:27.56 |
Posterdati |
yes |
12:28.07 |
Posterdati |
but how is it calculated that
matrix? |
12:28.56 |
brlcad |
http://en.wikipedia.org/wiki/Shear_matrix |
12:29.55 |
brlcad |
for a 4x4, try setting a value in field
[0][2] |
12:30.04 |
brlcad |
(on a unit matrix) |
12:30.29 |
Notify |
03BRL-CAD:indianlarry * 54480
brlcad/trunk/src/librt/primitives/brep/brep_debug.cpp: Fixed
occurrences where face index was being checked to see if it were
less than the total number of surfaces, it should be checked to the
total number of faces instead. In openNURBS you can have more than
one face per surface leading to the number of faces greater than
the number of surfaces. |
12:30.29 |
Posterdati |
yes, I know what is a shear matrix |
12:30.30 |
brlcad |
that'd be a shear along the z axis |
12:30.53 |
Posterdati |
but |
12:30.57 |
brlcad |
then I don't understand your question
:) |
12:31.37 |
Posterdati |
opennurbs has got a function
ON_XForm::Shear(ON_Plane, ON_3dVector, ...) |
12:31.44 |
Posterdati |
what are plane and vectors? |
12:32.12 |
brlcad |
that just looks like a helper
function |
12:32.45 |
Posterdati |
yes |
12:34.33 |
Posterdati |
but if I want to perform a shear on z axis
which plane and vectors shall I select |
12:34.35 |
Posterdati |
use? |
12:38.44 |
brlcad |
if your shear is that simple, you don't need
the helper function |
12:38.52 |
brlcad |
you can just set the matrix values |
12:39.24 |
brlcad |
a shear along z would be something like [1 0 A
0] [0 1 B 0] [0 0 1 0] [0 0 0 1] |
12:39.38 |
brlcad |
where A = B = your shear factor |
12:40.19 |
brlcad |
the helper function just helps figure out
which matrix elements get set and by how much but you certainly
don't have to use it |
12:40.41 |
brlcad |
reading their docs, it sounds like the plane
is a fixed anchor point and 3dvector is a shear direction on that
point |
12:42.10 |
brlcad |
so you could specify it that way too, but it's
kinda superfluous |
12:43.01 |
brlcad |
i'd imagine you'd use the origin with whatever
your up-vector is (e.g., 0,0,1,1) and define the vector as your
shear (e.b., 0 0 2) |
12:44.42 |
Posterdati |
there are three vectors |
12:49.39 |
Posterdati |
I'm trying to perform a taper too |
12:54.18 |
Notify |
03BRL-CAD:bob1961 * 54481
brlcad/trunk/src/libged/comb.c: Simplify the code a bit in
_ged_combadd2(). |
12:57.25 |
Posterdati |
the sad thing is that is not documented
well |
12:59.22 |
brlcad |
it sounds like you're wanting them to tell you
how to build a shear matrix, but that's such an open-ended question
with many many possible ways |
12:59.40 |
brlcad |
so they just give you the 4x4 and say "do what
you need" |
13:00.23 |
brlcad |
that really is all you need if you understand
shear matrices because that's all that is ultimately
applied |
13:01.08 |
brlcad |
it may simplify your particular problem if you
break it up instead of trying to do multiple operations with one
matrix |
13:01.21 |
Posterdati |
brlcad: I know how to build a shear matrix, I
don't know how to use their functions |
13:01.33 |
brlcad |
so don't use their functions! |
13:01.44 |
brlcad |
... |
13:02.03 |
brlcad |
that's why the m_xform is public |
13:02.10 |
Posterdati |
and how it is supposed to perform a non linear
object transformation? |
13:02.15 |
Posterdati |
I mean |
13:02.29 |
Posterdati |
I need to change scaling factors along a
direction |
13:02.44 |
Posterdati |
how it is supposed to do that? |
13:03.06 |
Posterdati |
transform() apply a transformation to an
entire object |
13:04.49 |
brlcad |
it's not :) |
13:04.52 |
brlcad |
that very different from your original
question |
13:04.56 |
brlcad |
that's not a shear |
13:05.19 |
brlcad |
or at least, it's maybe multiple
shears |
13:05.25 |
Posterdati |
I need to perform that too |
13:05.57 |
brlcad |
so you've got me curious now, what are you
working on ? :) |
13:06.27 |
brlcad |
that's not a simple operation in any
system |
13:07.02 |
Posterdati |
yes |
13:07.14 |
Posterdati |
a program to modify prismatic
objects |
13:07.37 |
Posterdati |
I've got three surfaces |
13:07.51 |
Posterdati |
laterall surface, top surface and bottom
surface |
13:08.16 |
Posterdati |
I need to deformate the object changing scale
factor for top and bottom differently |
13:08.48 |
Posterdati |
but I think that if I scale the topo alone,
the object will break up |
13:09.01 |
Notify |
03BRL-CAD:indianlarry * 54482
brlcad/trunk/src/librt/primitives/brep/brep_debug.cpp: Added
?\226?\128?\156KN2d?\226?\128?\157 option to
?\226?\128?\156brep?\226?\128?\157 command to display surface knots
in 2d UV space. |
13:09.26 |
brlcad |
even most of the commercial systems have
limite support for non-linear transforms (because of other
complexities you haven't even touched on yet) |
13:09.35 |
brlcad |
that said, xform can probably do that with a
taper matrix |
13:09.42 |
brlcad |
but that's a lot harder to calculate |
13:09.59 |
brlcad |
I doubt there's a helper for
tapering |
13:10.03 |
Posterdati |
no |
13:10.11 |
Posterdati |
but shear could accomodate |
13:10.20 |
brlcad |
I don't think so.. |
13:10.42 |
Posterdati |
may I scale only the top? |
13:10.52 |
Posterdati |
will the program seam it then? |
13:11.17 |
brlcad |
where is the "top" defined
geometrically? |
13:11.28 |
brlcad |
you could directly scale just the top
surface |
13:11.43 |
brlcad |
but yeah, you'd have to restitch the
brep |
13:12.05 |
brlcad |
there may be some update function to do that
for you, haven't looked |
13:12.34 |
brlcad |
a taper matrix would do it and keep it
together |
13:12.58 |
Posterdati |
top and bottom arte brep objects |
13:13.04 |
Posterdati |
top and bottom are brep objects |
13:13.25 |
brlcad |
they're entities (i.e. surfaces) in a brep
object |
13:13.39 |
brlcad |
but nothing specifically defines
top/bottom/whatever *geometrically* |
13:15.27 |
brlcad |
an ON_Brep represents a single object
comprised of N surfaces with topological connectivity, but not
topological awareness (no CAD system does that afaik) other than
maybe a notion of up |
13:15.44 |
brlcad |
yeah, something like this
http://www.charlespetzold.com/blog/2009/07/Taper-Transforms-with-Matrix3DProjection-An-Analytical-Approach.html |
13:16.51 |
brlcad |
hm, a simpler form that might be easier to
play with: http://en.wikipedia.org/wiki/Tapering_(mathematics)
but would have to be extended to homogenous coordinates |
13:17.35 |
brlcad |
still, Transform() may be limited to affine
transformations (i.e., no tapering, twisting, bending) .. so you'd
want to check that before trying to build one by hand |
13:22.23 |
Notify |
03BRL-CAD Wiki:Sean * 0
/wiki/User:ShantelujpmgezqzqzhqamoodekmwydwcddxftbiuzDhosane:
Spamming links to external sites |
13:22.37 |
Notify |
03BRL-CAD Wiki:Sean * 0
/wiki/The_use_of_Inflatable_water_slides: spam |
13:29.12 |
Notify |
03BRL-CAD:bob1961 * 54483
brlcad/trunk/src/libged/comb.c: More simplification of
_ged_combadd2(). |
13:31.33 |
Posterdati |
ok |
13:32.51 |
Posterdati |
antway |
13:33.02 |
Posterdati |
anyway whichis the center of
transformation? |
13:33.22 |
brlcad |
for what? |
13:33.47 |
Posterdati |
taper |
13:34.08 |
Notify |
03BRL-CAD:bob1961 * 54484
brlcad/trunk/src/libged/comb.c: More simplification of
_ged_combadd2(). |
13:43.20 |
Posterdati |
so no solution for my problem |
13:51.09 |
Posterdati |
:( |
13:55.12 |
Posterdati |
I should apply transform for every object
points, is that possible? |
13:55.30 |
Posterdati |
is it possible to evaluate points in such
manner? |
13:58.52 |
brlcad |
every real piece of real geometry has a
Transform() |
13:58.55 |
brlcad |
so yes |
13:59.23 |
brlcad |
you could apply Transform() to the individual
points and the surfaces should be updated accordingly |
14:00.24 |
Posterdati |
ok |
14:00.31 |
Posterdati |
I'll try that |
14:00.43 |
brlcad |
maybe a useful example in
brlcad/src/librt/test_bot2nurbs.cpp |
14:00.58 |
brlcad |
we transorm individual points to project them
onto a plane for testing |
14:03.04 |
Posterdati |
ok tx |
14:06.02 |
Posterdati |
it means that I have to apply a ON_Xform to
every brep |
14:10.13 |
Posterdati |
so Brep objects has got their own Transform
helper function |
14:10.36 |
Posterdati |
I should override it too |
14:14.39 |
Posterdati |
but how can I be sure that all points get
transformed? |
14:18.15 |
Posterdati |
:( |
14:20.06 |
Posterdati |
rhino can taper objects |
14:24.05 |
brlcad |
you can iterate over all points in an
on_brep |
14:25.11 |
brlcad |
not suprising that rhino can, it does a lot
that opennurbs does not (and they provide access via the rhino sdk)
such as surface intersection testing, closest point, tessellation,
and more |
14:25.33 |
brlcad |
most of the hardest pieces to implement are
removed |
14:26.04 |
brlcad |
we've spent several years implementing a
couple of the features they intentionally removed that we
needed |
14:26.33 |
Posterdati |
mmmh |
14:26.41 |
Posterdati |
I can't port it on sdk |
14:26.44 |
Posterdati |
no time |
14:26.48 |
Posterdati |
and I'm working on linux |
14:31.38 |
Notify |
03BRL-CAD Wiki:Dhyan singh * 0
/wiki/User:Dhyan_singh: |
14:37.11 |
brlcad |
no time? |
14:37.35 |
brlcad |
is this for work? class? |
14:40.06 |
Posterdati |
work |
14:55.17 |
brlcad |
Posterdati: not sure what the implementation
of Shear is supposed to tell me/you that wasn't said.. it sets up
the m_xform matrix based on the plane and vector |
14:55.32 |
brlcad |
that's still not going to get you a non-linear
transform (by itself) |
14:55.55 |
brlcad |
multiple shearings might for some specific
cases like your cube |
14:56.51 |
brlcad |
like I said earlier, "it sounds like the plane
is a fixed anchor point and 3dvector is a shear direction on that
point" .. and the impl indeed confirms that |
14:58.25 |
Posterdati |
plane gives you the origin point for
transformation |
14:59.03 |
brlcad |
i.e., "the plane is a fixed anchor
point" |
14:59.42 |
brlcad |
sorry if that wasn't clear earlier |
15:00.33 |
*** join/#brlcad Skriptkid
(~Skriptkid@117.202.103.23) |
15:00.38 |
brlcad |
hi Skriptkid |
15:00.55 |
Skriptkid |
hey :) |
15:01.18 |
Skriptkid |
Is buildbot currently unavailable? |
15:01.33 |
brlcad |
probably |
15:02.11 |
Skriptkid |
hm..okay |
15:02.39 |
brlcad |
Skriptkid: looking for something? |
15:03.03 |
Skriptkid |
Nope. Just casually seeing. Its gives me a
503 |
15:03.08 |
brlcad |
Skriptkid: it'd be great to get it back up and
running -- I don't think it was configured to properly
start/restart on server execution |
15:03.12 |
brlcad |
s/execution/reboot/ |
15:03.36 |
Skriptkid |
Oh. I'll see if anything can be done |
15:03.37 |
brlcad |
what was the url? |
15:03.44 |
Skriptkid |
crit.brlcad.org/buildbot/ |
15:04.32 |
brlcad |
looks like a rewrite rule gone bad |
15:04.33 |
brlcad |
<p>The document has moved <a
href="http://brlcad.orgbuildbot">here</a>.</p> |
15:04.54 |
brlcad |
crit.brlcad.org is now brlcad.org |
15:05.53 |
Skriptkid |
Oh. |
15:06.53 |
brlcad |
fixed the redirect |
15:07.18 |
brlcad |
and it is indeed down (probably due to
aforementioned config) |
15:07.33 |
Skriptkid |
okay |
15:08.56 |
Skriptkid |
Will you be in San Francisco as well? During
our trip? |
15:09.18 |
brlcad |
nope, you're the lucky ones :) |
15:09.52 |
Skriptkid |
Ahh..was looking forward to meeting you too
:) |
15:10.02 |
brlcad |
I'd like that |
16:24.08 |
Posterdati |
I always need a taper function :( |
16:50.17 |
brlcad |
implement one and make it part of our libnurbs
library ;) |
16:51.18 |
Posterdati |
but how using opennurbs? |
16:51.44 |
brlcad |
your first suggestion about applying a taper
transform to all of the individual points sounded like a reasonable
start |
16:52.37 |
Posterdati |
yes |
16:52.38 |
brlcad |
shouldn't be more than a day to code that up
I'd think |
16:52.39 |
Posterdati |
so |
16:52.48 |
Posterdati |
listen to the idea |
16:52.52 |
Posterdati |
I need |
16:52.54 |
Posterdati |
a line |
16:53.08 |
Posterdati |
a segment |
16:53.19 |
Posterdati |
between two points |
16:53.32 |
Posterdati |
and a plane perpendicular to it, I
think |
16:54.01 |
Posterdati |
every object point intersecting the plane are
scaled |
16:54.25 |
Posterdati |
this plane travel on the segment |
16:54.31 |
Posterdati |
from A to B |
16:55.28 |
Posterdati |
now objects are all breps |
16:55.44 |
Posterdati |
so how can I scale every brep
points? |
16:56.34 |
brlcad |
your description leaves much to be desired ...
unclear |
16:56.47 |
brlcad |
"every object point intersecting the plane are
scaled" ... what does scaling a point mean? |
16:57.01 |
brlcad |
object is a line segment,
presumably? |
16:57.48 |
brlcad |
so every point on a line segment is ..
"scaled", maybe you mean transformed by some translation
matrix? |
16:58.00 |
Posterdati |
scaling a point means translating it |
16:58.27 |
Posterdati |
p' = Sp |
16:58.29 |
brlcad |
so turning the line segment into a new line
segment or into a new curve? |
16:58.45 |
Posterdati |
no |
16:59.07 |
brlcad |
maybe you can draw a picture :) |
16:59.09 |
Posterdati |
the line segment is the path along the plane
travel |
16:59.16 |
brlcad |
sure |
16:59.34 |
Posterdati |
is a straight line |
16:59.35 |
brlcad |
but what happens to a line segment within that
plane's travel path |
17:00.05 |
brlcad |
basically, I'm asking what kind of transforms
are possible |
17:00.19 |
Posterdati |
on the plane you can translate |
17:00.21 |
brlcad |
if you're only talking about affine
transformations, then you're good already and the problem is very
simple |
17:00.27 |
Posterdati |
and rotate |
17:00.45 |
brlcad |
if you're talking about non-affine transforms
(where a line turns into a curve), you've got a much harder
problem |
17:01.02 |
Posterdati |
wsell |
17:01.04 |
Posterdati |
well |
17:01.23 |
Posterdati |
the problem is what is a taper
transformation? |
17:01.53 |
Posterdati |
T = [[ sx(u) 0 0 ][0 sy(u) 0 ][ 0 0 sz(u)
]] |
17:02.06 |
Posterdati |
is that a generic taper? |
17:03.24 |
Posterdati |
so what happen if I've got a cyclinder and
want to taper it along z axis, I mean changing its point x y
coordinates but not the z one |
17:04.16 |
brlcad |
it depends if the taper is linear or
not |
17:04.22 |
Posterdati |
linear |
17:04.47 |
Posterdati |
T = [[ sx(z) 0 0 ][ 0 sy(z) 0 ][ 0 0 1
]] |
17:04.57 |
brlcad |
I think linear tapering should be
representable with just a scaling matrix |
17:05.04 |
brlcad |
but I don't have a proof on hand |
17:06.45 |
brlcad |
but yeah, I think T is the basic
idea |
17:08.43 |
Posterdati |
ok |
17:08.56 |
Posterdati |
now I have to apply T to every point |
17:09.26 |
Posterdati |
with their z equal to z parameter |
17:23.39 |
brlcad |
Posterdati: heh,
https://github.com/mcneel/rhinocommon/blob/master/dotnet/opennurbs/opennurbs_xform.cs
line 345 |
17:23.48 |
brlcad |
that's their rhinosdk c# wrapper |
17:24.19 |
brlcad |
leads me to believe that they have a Taper
function in the RhinoSDK, but it was intentionally removed from
openNURBS |
17:25.37 |
brlcad |
still, that's probably because they
implemented it for non-linear tapering which is seriously
hard |
17:26.12 |
brlcad |
especially when you do some taper that changes
topology or creates singularities |
17:30.18 |
Posterdati |
I saw that too |
17:30.37 |
Posterdati |
but I could arrange something |
17:50.23 |
*** join/#brlcad luca79
(~luca@net-37-116-125-167.cust.dsl.vodafone.it) |
18:06.41 |
Posterdati |
ciao |
18:16.33 |
Notify |
03BRL-CAD:carlmoore * 54485
brlcad/trunk/src/liboptical/sh_cloud.c: make use of
sqrt(1/2) |
18:40.21 |
Notify |
03BRL-CAD:carlmoore * 54486
brlcad/trunk/src/librt/primitives/ell/ell.c: use M_SQRT1_2 , and
clarify some remarks about use of degrees, not radians |
18:43.48 |
Notify |
03BRL-CAD:carlmoore * 54487
brlcad/trunk/src/librt/primitives/nmg/nmg_inter.c: make use of
M_SQRT1_2 |
19:23.40 |
Notify |
03BRL-CAD:carlmoore * 54488
brlcad/trunk/src/librt/primitives/superell/superell.c: use
M_SQRT1_2, and clarify some comments about use of degrees, not
radians |
19:26.27 |
Notify |
03BRL-CAD:carlmoore * 54489
brlcad/trunk/src/librt/primitives/tgc/tgc.c: make use of
M_SQRT1_2 |
19:41.48 |
Notify |
03BRL-CAD:carlmoore * 54490
brlcad/trunk/src/proc-db/tube.c: use M_SQRT1_2 |
20:04.22 |
Notify |
03BRL-CAD:carlmoore * 54491
brlcad/trunk/src/conv/g-shell-rect.c: use square root of
2 |
20:09.13 |
Notify |
03BRL-CAD:n_reed * 54492
brlcad/trunk/src/proc-db/tube.c: remove broken comment |
20:16.33 |
Notify |
03BRL-CAD:carlmoore * 54493
(brlcad/trunk/src/remrt/rtsrv.c brlcad/trunk/src/rt/opt.c and 2
others): make use of M_SQRT2 and M_SQRT1/2 (the latter is
sqrt(2.)/2) |
20:22.19 |
Notify |
03BRL-CAD:n_reed * 54494
(brlcad/trunk/include/ged.h brlcad/trunk/src/libged/draw.c): add
ged_redraw to recalculate vlists without changing display
state |
20:23.05 |
Notify |
03BRL-CAD:carlmoore * 54495
brlcad/trunk/src/libbn/poly.c: use M_SQRT3 for square root of
3 |
22:19.09 |
starseeker |
Huh -
http://www.amazon.com/Handbook-Source-Tools-Sandeep-Koranne/dp/144197718X
- mentions BRL-CAD |
22:19.35 |
starseeker |
not the kind of book I'm used to seeing from
Springer... |
23:21.18 |
Notify |
03BRL-CAD:n_reed * 54496
(brlcad/trunk/src/mged/chgview.c brlcad/trunk/src/mged/dm-generic.c
and 2 others): have mged redraw after zoom events when adaptive
plotting is enabled |