17 #ifndef _OpCreateNurbs3D_H
18 #define _OpCreateNurbs3D_H
117 static void InsertNurbsFromMessage(
const char *in_data,
unsigned int data_length,
HBaseView *m_pView);
128 static void EmitModifyControlPointMessage(
HBaseView *pView,
HC_KEY key,
int control_point,
float x,
float y,
float z);
136 static void ModifyControlPointFromMessage(
const char *in_data,
unsigned int data_length,
HBaseView *pView);
144 static void EmitFinishNurbsEditing(
HBaseView *pView,
HC_KEY key,
bool emit_message);
152 static void FinishNurbsEditingFromMessage(
const char *in_data,
unsigned int data_length,
HBaseView *pView);
192 m_tesselationLevel = 0;
195 m_vertexDistance = 0;
197 m_surfaceMeshKey = 0;
202 H_SAFE_DELETE_ARRAY(m_pVertices);
203 H_SAFE_DELETE_ARRAY(m_pNurbs);
210 void Init(HC_KEY key);
225 int num_u_vertices,
int num_v_vertices,
226 int degree,
int tesselation_level,
243 void DisplayVertices();
253 void EnableSelectability();
258 void DisableSelectability();
267 void UpdateVertex(
int vertexnum,
float x,
float y,
float z);
274 void ShowVertex(
int vertexnum,
HPoint &v);
281 void CreateDefaultVertices(
HPoint * center,
HPoint * axis);
294 int m_tesselationLevel;
295 float m_vertexDistance;
301 void UpdateVertices();
302 void UpdateParameters();
303 float nip(
int i,
int p,
float u,
float *uv);
304 void InsertNurbsMesh(
HPoint *pNurbs);
305 void InsertChakinSubdivionSurface(
HPoint *pNurbs);
307 void SubdivideSurface(
HPoint *old_surface,
HPoint *ssurf,
int xlen,
int ylen,
int &new_xlen,
int &new_ylen,
bool xrefine);
309 void GetVerticesFromHOOPS();
310 void GetParametersFromHOOPS();
virtual int OnLButtonDownAndMove(HEventInfo &hevent)
virtual const char * GetName()
HNurbsSurface()
Definition: HOpCreateNurbs3D.h:184
virtual int OnLButtonUp(HEventInfo &hevent)
The HOpCreateNurbs3D class provides support for the interactive construction of various surface types...
Definition: HOpCreateNurbs3D.h:56
operator uses HOOPS nurbs function (HC_Insert_Nurbs)
Definition: HOpCreateNurbs3D.h:34
operator uses internal routines
Definition: HOpCreateNurbs3D.h:35
virtual HBaseOperator * Clone()
HC_KEY GetSurfaceMeshKey()
Definition: HOpCreateNurbs3D.h:284
The HBaseOperator class serves as a base for classes which handle user input and operate on the scene...
Definition: HBaseOperator.h:60
The HPoint class is the data type of a three-dimensional point.
Definition: HGlobals.h:121
The HBaseView class defines and manages a view of model information.
Definition: HBaseView.h:332
The HEventInfo class stores and manages event information.
Definition: HEventInfo.h:207
virtual int OnLButtonDown(HEventInfo &hevent)
HSurfaceType
Definition: HOpCreateNurbs3D.h:32
The HNurbsSurface class encapsulates a NURBS surface or Chaking subdivision surface.
Definition: HOpCreateNurbs3D.h:179
operator creates surface based on chakin subdivision scheme
Definition: HOpCreateNurbs3D.h:36