Skip to content
Snippets Groups Projects
Commit e0789901 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

This commit was generated by cvs2svn to compensate for changes in r2,

which included commits to RCS files with non-trunk default branches.
parent b162fd2b
No related branches found
No related tags found
No related merge requests found
#ifndef _CAD_H_
#define _CAD_H_
#include "Mesh.h"
int NEWREG(void);
int NEWPOINT(void);
Vertex *FindVertex(int inum, Mesh *M);
Curve *FindCurve(int inum, Mesh *M);
Surface *FindSurface(int inum, Mesh *M);
Volume *FindVolume(int inum, Mesh *M);
EdgeLoop *FindEdgeLoop(int inum, Mesh *M);
SurfaceLoop *FindSurfaceLoop(int inum, Mesh *M);
bool ProjectPointOnCurve (Curve *c, Vertex *v, Vertex *RES, Vertex *DER);
bool ProjectPointOnSurface (Surface *s, Vertex &p);
bool ProjectPointOnSurface (Surface *s, Vertex *p,double *u, double *v);
void Extrude_ProtudePoint(int ep, int ip, double A, double B, double C,
double X, double Y, double Z, double alpha,
Curve **pc, Curve **prc, ExtrudeParams *e);
Surface *Extrude_ProtudeCurve(int ep, int ic,
double A, double B, double C,
double X, double Y, double Z,
double alpha, ExtrudeParams *e);
void Extrude_ProtudeSurface(int ep, int is,
double A, double B, double C,
double X, double Y, double Z,
double alpha,
int NewVolume, ExtrudeParams *e);
void ProtudeXYZ ( double &x, double &y, double &z, ExtrudeParams *e);
void ReplaceAllDuplicates ( Mesh *m );
void Coherence_PS(void);
void ModifyLcPoint(int ip, double lc);
void TranslateShapes(double X,double Y,double Z,
List_T *ListShapes, int isFinal);
void DilatShapes(double X,double Y,double Z, double A,
List_T *ListShapes, int isFinal);
void RotateShapes (double Ax,double Ay,double Az,
double Px,double Py, double Pz,
double alpha, List_T *ListShapes);
void SymetryShapes (double A,double B,double C,
double D, List_T *ListShapes, int x);
void CopyShape(int Type, int Num, int *New);
void DeletePoint(int ip);
void DeleteCurve(int ip);
void DeleteSurf( int is );
void DeleteShape(int Type, int Num);
Curve * CreateReversedCurve (Mesh *M,Curve *c);
int recognize_seg(int typ, List_T * liste, int *seg);
int recognize_loop(List_T * liste, int *loop);
int recognize_surfloop(List_T * liste, int *loop);
#endif
This diff is collapsed.
#ifndef _DATABASE_H_
#define _DATABASE_H_
void Cdbpts101 (int ip, double x, double y, double z, double l, double w);
void Cdbpts105 (int ip, double x, double y, double z, double l, double w);
void Cdbseg102 (int iseg, int ip, int newp);
void Cdbz102 (int izon, int ip, int newp, int oldp);
void Cdbseg101 (int iseg, int typseg, int degre, List_T * liste, List_T * listint,
int, int, double, double, char *, char *, char *);
void Cdbpts201 (int ip);
void Cdbseg201 (int ip);
void Cdbz201 (int ip);
void Cdbz101 (int izon, int typzon, int o1, int o2, int nbu, int nbv,
int support, List_T * ListCP, List_T * liste, List_T * intlist);
void CreateNurbsSurface (int Num, int Order1, int Order2, List_T *, List_T *, List_T *);
void CreateNurbsSurfaceSupport (int Num, int Order2, int Order1,
List_T * List, List_T *, List_T *);
void Cdbseg301 (int ip);
void Cdbz301 (int ip);
void Cdbn101 (int in, double X, double Y, double Z);
void Cdbe101 (int nElm, int iEnt, int nnoe[4]);
void AddCurveInDataBase (int NumCurve, int TypCurve, int Order, List_T * ControlPoints,
List_T * Knots, int VertexBeg, int VertexEnd, double uBeg,
double uEnd);
void AddCircleInDataBase (int NumCurve, int TypCurve, List_T * ControlPoints,
double n[3]);
void AddQuadricSurfaceInDataBase (int Typ, int NumCyl, double zaxis[3],
double xaxis[3], double center[3],
double radius1, double radius2,
List_T * loops);
#endif
#include "Gmsh.h"
#include "Geo.h"
#include "CAD.h"
#include "ExtrudeParams.h"
void Projette (double p[3],double mat[3][3]) {
double X, Y, Z ;
X = p[0] * mat[0][0] + p[1] * mat[0][1] + p[2] * mat[0][2];
Y = p[0] * mat[1][0] + p[1] * mat[1][1] + p[2] * mat[1][2];
Z = p[0] * mat[2][0] + p[1] * mat[2][1] + p[2] * mat[2][2];
p[0] = X;
p[1] = Y;
p[2] = Z;
}
ExtrudeParams :: ExtrudeParams (int ModeEx){
mesh.ExtrudeMesh = false;
geo.Mode = ModeEx;
mesh.Simplexes = true;
}
void ExtrudeParams :: fill (int ep , double A, double B, double C,
double X, double Y, double Z, double angle){
geo.axe[0] = A;
geo.axe[1] = B;
geo.axe[2] = C;
geo.pt[0] = X;
geo.pt[1] = Y;
geo.pt[2] = Z;
geo.angle = angle;
geo.Type = ep;
}
void ExtrudeParams :: Extrude ( int iLayer, int iElemLayer,
double &x, double &y, double &z){
double dx0,dy0,dz0,dx1,dy1,dz1;
double dx,dy,dz;
if(!iLayer){
dx0=dy0=dz0=0.0;
dx1 = mesh.hLayer[0];
dy1 = mesh.hLayer[0];
dz1 = mesh.hLayer[0];
}
else{
dx0 = mesh.hLayer[iLayer-1];
dy0 = mesh.hLayer[iLayer-1];
dz0 = mesh.hLayer[iLayer-1];
dx1 = mesh.hLayer[iLayer];
dy1 = mesh.hLayer[iLayer];
dz1 = mesh.hLayer[iLayer];
}
double t = (double) iElemLayer /(double)mesh.NbElmLayer[iLayer];
if(geo.Type){
dx = geo.axe[0]*(dx0 + t * (dx1-dx0));
dy = geo.axe[1]*(dy0 + t * (dy1-dy0));
dz = geo.axe[2]*(dz0 + t * (dz1-dz0));
x+=dx;y+=dy;z+=dz;
}
else{
double angle = geo.angle;
geo.angle = geo.angle*(dx0 + t * (dx1-dx0));
ProtudeXYZ(x,y,z,this);
geo.angle = angle;
}
}
void ExtrudeParams :: Rotate(double matr[3][3]){
Projette(geo.axe,matr);
Projette(geo.pt,matr);
geo.angle = -geo.angle;
}
void ExtrudeParams :: Extrude (double t, double &x, double &y, double &z){
double dx,dy,dz;
if(geo.Type){
dx = geo.axe[0]*t;
dy = geo.axe[1]*t;
dz = geo.axe[2]*t;
x+=dx;y+=dy;z+=dz;
}
else{
double angle = geo.angle;
geo.angle = geo.angle*t;
ProtudeXYZ(x,y,z,this);
geo.angle = angle;
}
}
#ifndef _EXTRUDE_PARAMS_H_
#define _EXTRUDE_PARAMS_H_
#define NB_LAYER_MAX 30
#define EXTRUDED_ENTITY 1
#define COPIED_ENTITY 2
class ExtrudeParams{
public :
ExtrudeParams(int Mode = EXTRUDED_ENTITY);
void fill (int ep,double A, double B, double C,
double X, double Y, double Z, double angle);
void Extrude ( int iLayer, int iElemLayer,
double &dx, double &dy, double &dz);
void Extrude (double t, double &x, double &y, double &z);
void Rotate(double matr[3][3]);
struct{
bool ExtrudeMesh;
bool Simplexes;
int NbLayer;
int NbElmLayer [NB_LAYER_MAX];
int ZonLayer [NB_LAYER_MAX];
double hLayer [NB_LAYER_MAX];
}mesh;
struct{
int Mode;
int Type;
int Source;
double axe[3];
double pt[3];
double angle;
}geo;
};
#endif
This diff is collapsed.
Geo/Geo.h 0 → 100644
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#ifndef _MINMAX_H_
#define _MINMAX_H_
void CalculateMinMax (Tree_T *t);
#endif
This diff is collapsed.
#ifndef _PRINT_GEO_H_
#define _PRINT_GEO_H_
void Print_Geo(Mesh *M, char *filename);
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#ifndef _VERIF_H_
#define _VERIF_H_
int alledgeslinked (int ed, List_T * Liste, List_T * old);
int allfaceslinked (int iz, List_T * Liste, List_T * old);
int EntiteEstElleVisible(int iEnt);
void RemplirEntitesVisibles (int add_rem);
void ToutesLesEntitesRelatives(int iEnt, Tree_T *Tree, int add_rem);
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment