Text archives Help
- From: thiago@sci.utah.edu
- To: manta@sci.utah.edu
- Subject: [MANTA] r1615 - in trunk/Model: Groups Primitives
- Date: Mon, 6 Aug 2007 21:25:47 -0600 (MDT)
Author: thiago
Date: Mon Aug 6 21:25:46 2007
New Revision: 1615
Modified:
trunk/Model/Groups/Group.h
trunk/Model/Primitives/WaldTriangle.cc
trunk/Model/Primitives/WaldTriangle.h
Log:
Model/Primitives/WaldTriangle.cc
Model/Primitives/WaldTriangle.h:
Added a clean way to get the vertices of a WaldTriangle.
Model/Groups/Group.h: Added a method to get the actual vector of objs
which I use in a MantaProject outside of manta (I had previously added
it in, forgotten, saw that it was unused in manta and gleefully
removed it, and then realized later I was using it elsewhere...)
Modified: trunk/Model/Groups/Group.h
==============================================================================
--- trunk/Model/Groups/Group.h (original)
+++ trunk/Model/Groups/Group.h Mon Aug 6 21:25:46 2007
@@ -61,6 +61,7 @@
virtual void set( size_t i, Object* obj );
Object* get( size_t i );
const Object* get( size_t i ) const;
+ const vector<Object*> &getVectorOfObjects() const { return objs; };
//whether the group has been modified (is dirty) and needs state,
//such as the bounding box, to be updated.
Modified: trunk/Model/Primitives/WaldTriangle.cc
==============================================================================
--- trunk/Model/Primitives/WaldTriangle.cc (original)
+++ trunk/Model/Primitives/WaldTriangle.cc Mon Aug 6 21:25:46 2007
@@ -1,6 +1,7 @@
#include <Model/Primitives/WaldTriangle.h>
#include <Interface/RayPacket.h>
#include <Core/Geometry/BBox.h>
+#include <SCIRun/Core/Util/Assert.h>
#include <sgi_stl_warnings_off.h>
#include <iostream>
#include <sgi_stl_warnings_on.h>
@@ -239,34 +240,34 @@
add4(org_k,
add4(mul4(sse_n_u, org_ku),
mul4(sse_n_v, org_kv))));
- }
- if (HasCommonOrigin && HasCornerRays) {
- const sse_t nd0 = add4(add4(mul4(sse_n_u,data->corner_dir[ku]),
- mul4(sse_n_v,data->corner_dir[kv])),
- data->corner_dir[k]);
- const sse_t nd = oneOver(nd0);
- const sse_t f = mul4(f0,nd);
- sse_t mask = cmp4_gt(f,_mm_eps);
- if (none4(mask))
- return;
-
- const sse_t hu = add4(org_ku,mul4(f,data->corner_dir[ku]));
- const sse_t hv = add4(org_kv,mul4(f,data->corner_dir[kv]));
- const sse_t lambda = add4(sse_b_d,
- add4(mul4(hu,sse_b_nu),
- mul4(hv,sse_b_nv)));
- if (all4(lambda))
- return;
-
- const sse_t mue = add4(sse_c_d,add4(mul4(hu,sse_c_nu),
- mul4(hv,sse_c_nv)));
- if (all4(mue))
- return;
-
- mask = cmp4_gt(add4(lambda,mue),_mm_one);
- if (all4(mask))
- return;
+ if (HasCornerRays) {
+ const sse_t nd0 = add4(add4(mul4(sse_n_u,data->corner_dir[ku]),
+ mul4(sse_n_v,data->corner_dir[kv])),
+ data->corner_dir[k]);
+ const sse_t nd = oneOver(nd0);
+ const sse_t f = mul4(f0,nd);
+ sse_t mask = cmp4_gt(f,_mm_eps);
+ if (none4(mask))
+ return;
+
+ const sse_t hu = add4(org_ku,mul4(f,data->corner_dir[ku]));
+ const sse_t hv = add4(org_kv,mul4(f,data->corner_dir[kv]));
+ const sse_t lambda = add4(sse_b_d,
+ add4(mul4(hu,sse_b_nu),
+ mul4(hv,sse_b_nv)));
+ if (all4(lambda))
+ return;
+
+ const sse_t mue = add4(sse_c_d,add4(mul4(hu,sse_c_nu),
+ mul4(hv,sse_c_nv)));
+ if (all4(mue))
+ return;
+
+ mask = cmp4_gt(add4(lambda,mue),_mm_one);
+ if (all4(mask))
+ return;
+ }
}
if (ray_begin < sse_begin) {
@@ -539,3 +540,9 @@
}
}
+Vector WaldTriangle::getVertex(unsigned int which)
+{
+ ASSERT(which < 3);
+ const unsigned int index = myID*3;
+ return mesh->vertices[mesh->vertex_indices[index+which]];
+}
Modified: trunk/Model/Primitives/WaldTriangle.h
==============================================================================
--- trunk/Model/Primitives/WaldTriangle.h (original)
+++ trunk/Model/Primitives/WaldTriangle.h Mon Aug 6 21:25:46 2007
@@ -50,6 +50,9 @@
void computeNormal(const RenderContext& context, RayPacket &rays) const;
+ //which is 0, 1, or 2.
+ Vector getVertex(unsigned int which);
+
protected:
void setPoints(const Vector& p1, const Vector& p2, const Vector& p3);
- [MANTA] r1615 - in trunk/Model: Groups Primitives, thiago, 08/06/2007
Archive powered by MHonArc 2.6.16.