Skip to content
Snippets Groups Projects
Commit 92b12811 authored by Akash Anand's avatar Akash Anand
Browse files

*** empty log message ***

parent df6e7108
Branches
Tags
No related merge requests found
...@@ -30,6 +30,12 @@ class FM_Edge { ...@@ -30,6 +30,12 @@ class FM_Edge {
inline void SetEndPoint(double x, double y, double z) { inline void SetEndPoint(double x, double y, double z) {
_EP = new FM_Vertex(x,y,z); _EP = new FM_Vertex(x,y,z);
} }
inline bool IsPhysical() {
if (_curve)
return true;
else
false;
}
void F(double t, double &x, double &y, double &z); void F(double t, double &x, double &y, double &z);
bool Inverse(double x,double y,double z,double &t); bool Inverse(double x,double y,double z,double &t);
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
#include "Message.h" #include "Message.h"
void FM_Face::F(double u, double v, double &x, double &y, double &z) { void FM_Face::F(double u, double v, double &x, double &y, double &z) {
if (_edge.size() == 0) { if (_edge.size() == 4) {
_patch->F(u,v,x,y,z); _patch->F(u,v,x,y,z);
} }
else if (_edge.size() == 1) { else if (_edge.size() == 1) {
...@@ -15,6 +15,11 @@ void FM_Face::F(double u, double v, double &x, double &y, double &z) { ...@@ -15,6 +15,11 @@ void FM_Face::F(double u, double v, double &x, double &y, double &z) {
_patch->F(u*R,v,x,y,z); _patch->F(u*R,v,x,y,z);
} }
else if (_edge.size() == 4) { else if (_edge.size() == 4) {
bool isPhysical = (_edge[0]->IsPhysical()) && (_edge[1]->IsPhysical()) &&
(_edge[2]->IsPhysical()) && (_edge[3]->IsPhysical());
if (isPhysical)
_patch->F(u,v,x,y,z);
else {
double xD, yD, zD, uD, vD; double xD, yD, zD, uD, vD;
double xU, yU, zU, uU, vU; double xU, yU, zU, uU, vU;
_edge[0]->F(v,xD,yD,zD); _edge[0]->F(v,xD,yD,zD);
...@@ -27,6 +32,7 @@ void FM_Face::F(double u, double v, double &x, double &y, double &z) { ...@@ -27,6 +32,7 @@ void FM_Face::F(double u, double v, double &x, double &y, double &z) {
_patch->F(U,V,x,y,z); _patch->F(U,V,x,y,z);
} }
}
else { else {
Msg::Info("Such a face not implemented yet"); Msg::Info("Such a face not implemented yet");
x = y = z = 0.; x = y = z = 0.;
...@@ -35,10 +41,7 @@ void FM_Face::F(double u, double v, double &x, double &y, double &z) { ...@@ -35,10 +41,7 @@ void FM_Face::F(double u, double v, double &x, double &y, double &z) {
bool FM_Face::Inverse(double x,double y,double z,double &u, double &v) bool FM_Face::Inverse(double x,double y,double z,double &u, double &v)
{ {
if (_edge.size() == 0) { if (_edge.size() == 1) {
_patch->Inverse(x,y,z,u,v);
}
else if (_edge.size() == 1) {
double n[3], t[3], s[3], c[3], r[3]; double n[3], t[3], s[3], c[3], r[3];
_patch->F(0.,0.,c[0],c[1],c[2]); _patch->F(0.,0.,c[0],c[1],c[2]);
for (int i=0;i<3;i++) { for (int i=0;i<3;i++) {
...@@ -70,6 +73,11 @@ bool FM_Face::Inverse(double x,double y,double z,double &u, double &v) ...@@ -70,6 +73,11 @@ bool FM_Face::Inverse(double x,double y,double z,double &u, double &v)
u = norm / R; u = norm / R;
} }
else if (_edge.size() == 4) { else if (_edge.size() == 4) {
bool isPhysical = (_edge[0]->IsPhysical()) && (_edge[1]->IsPhysical()) &&
(_edge[2]->IsPhysical()) && (_edge[3]->IsPhysical());
if (isPhysical)
_patch->Inverse(x,y,z,u,v);
else {
double U, V; double U, V;
_patch->Inverse(x,y,z,U,V); _patch->Inverse(x,y,z,U,V);
double u0,v0,u1,v1; double u0,v0,u1,v1;
...@@ -87,6 +95,7 @@ bool FM_Face::Inverse(double x,double y,double z,double &u, double &v) ...@@ -87,6 +95,7 @@ bool FM_Face::Inverse(double x,double y,double z,double &u, double &v)
u = (U - uD) / (uU - uD); u = (U - uD) / (uU - uD);
} }
}
else { else {
Msg::Info("Such a face not implemented yet"); Msg::Info("Such a face not implemented yet");
u = v = 0.; u = v = 0.;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment