double d = Math.abs(get0()); //TODO use epsilon for minimal values (?) if (Math.abs(get1()) > d) d = Math.abs(get1()); if (Math.abs(get2()) > d) d = Math.abs(get2()); if (Math.abs(get3()) > d) d = Math.abs(get3()); set(1, 0, 0, 0); return false; scale(1/d); double l = 1./length();//Math.sqrt(sum); scale(l); return true;
@Override public double length() { return Math.sqrt(lengthSquared()); }
DVector4 n4=new DVector4(); DMatrix3 R = new DMatrix3();//,sides; DVector3 sides = new DVector3(); DVector3 pos2 = new DVector3(); dGeomPlaneGetParams ((DPlane)g,n4); dRFromZAxis (R,n4.get0(),n4.get1(),n4.get2()); for (j=0; j<3; j++) pos.set(j, n4.get(j)*n4.get3()); pos.add(2, Z_OFFSET ); for (j=0; j<3; j++) pos2.set(j, pos.get(j) + 0.1*n4.get(j)); dsDrawLine (pos,pos2); dsSetColorAlpha (1f,0f,1f,0.8f);
public DVector4(DVector4 v4) { this(); set(v4.v); }
DVector4 plTrianglePlane = new DVector4(); dConstructPlane( m_vNormal,plDistance,plTrianglePlane);
/** * Potentially asserts on zero vec. * @param a a */ public static void dNormalize4(DVector4 a) { a.normalize(); // if (!_dSafeNormalize4(a)) throw new IllegalStateException( // "Normalization failed: " + a); } /**
public DVector4(DVector4 v4) { this(); set(v4.v); }
DVector4 plTrianglePlane = new DVector4(); dConstructPlane( m_vNormal,plDistance,plTrianglePlane);
/** * Potentially asserts on zero vec. * @param a a */ public static void dNormalize4(DVector4 a) { a.normalize(); // if (!_dSafeNormalize4(a)) throw new IllegalStateException( // "Normalization failed: " + a); } /**
double d = Math.abs(get0()); //TODO use epsilon for minimal values (?) if (Math.abs(get1()) > d) d = Math.abs(get1()); if (Math.abs(get2()) > d) d = Math.abs(get2()); if (Math.abs(get3()) > d) d = Math.abs(get3()); set(1, 0, 0, 0); return false; scale(1/d); double l = 1./length();//Math.sqrt(sum); scale(l); return true;
void GetVertex(int i, DVector4 Out) { //TZ commented out, special treatment not required (?) // if(m_single) // { //const float * fverts = (const float * )(m_Vertices + m_VertexStride*i); int p = i*3;//m_VertexStride; // Out[0] = fverts[0]; // Out[1] = fverts[1]; // Out[2] = fverts[2]; // Out[3] = 1.0f; Out.set(m_Vertices[p], m_Vertices[p+1], m_Vertices[p+2], 1.0f); // } // else // { // const double * dverts = (const double * )(m_Vertices + m_VertexStride*i); // Out[0] = (float)dverts[0]; // Out[1] = (float)dverts[1]; // Out[2] = (float)dverts[2]; // Out[3] = 1.0f; // // } }
DVector4 plPlane = new DVector4();
@Override public double length() { return Math.sqrt(lengthSquared()); }
void GetVertex(int i, DVector4 Out) { //TZ commented out, special treatment not required (?) // if(m_single) // { //const float * fverts = (const float * )(m_Vertices + m_VertexStride*i); int p = i*3;//m_VertexStride; // Out[0] = fverts[0]; // Out[1] = fverts[1]; // Out[2] = fverts[2]; // Out[3] = 1.0f; Out.set(m_Vertices[p], m_Vertices[p+1], m_Vertices[p+2], 1.0f); // } // else // { // const double * dverts = (const double * )(m_Vertices + m_VertexStride*i); // Out[0] = (float)dverts[0]; // Out[1] = (float)dverts[1]; // Out[2] = (float)dverts[2]; // Out[3] = 1.0f; // // } }
DVector4 plPlane = new DVector4();