22 #ifndef _OpCreateNurbs3D_H
23 #define _OpCreateNurbs3D_H
124 static void InsertNurbsFromMessage(
const char *in_data,
unsigned int data_length,
HBaseView *m_pView);
135 static void EmitModifyControlPointMessage(
HBaseView *pView,
HC_KEY key,
int control_point,
float x,
float y,
float z);
143 static void ModifyControlPointFromMessage(
const char *in_data,
unsigned int data_length,
HBaseView *pView);
153 static void EmitFinishNurbsEditing(
HBaseView *pView,
HC_KEY key,
bool emit_message);
161 static void FinishNurbsEditingFromMessage(
const char *in_data,
unsigned int data_length,
HBaseView *pView);
201 m_tesselationLevel = 0;
204 m_vertexDistance = 0;
206 m_surfaceMeshKey = 0;
211 H_SAFE_DELETE_ARRAY(m_pVertices);
212 H_SAFE_DELETE_ARRAY(m_pNurbs);
219 void Init(HC_KEY key);
234 int num_u_vertices,
int num_v_vertices,
235 int degree,
int tesselation_level,
252 void DisplayVertices();
262 void EnableSelectability();
267 void DisableSelectability();
276 void UpdateVertex(
int vertexnum,
float x,
float y,
float z);
283 void ShowVertex(
int vertexnum,
HPoint &v);
290 void CreateDefaultVertices(
HPoint * center,
HPoint * axis);
303 int m_tesselationLevel;
304 float m_vertexDistance;
310 void UpdateVertices();
311 void UpdateParameters();
312 float nip(
int i,
int p,
float u,
float *uv);
313 void InsertNurbsMesh(
HPoint *pNurbs);
314 void InsertChakinSubdivionSurface(
HPoint *pNurbs);
316 void SubdivideSurface(
HPoint *old_surface,
HPoint *ssurf,
int xlen,
int ylen,
int &new_xlen,
int &new_ylen,
bool xrefine);
318 void GetVerticesFromHOOPS();
319 void GetParametersFromHOOPS();
virtual int OnLButtonDownAndMove(HEventInfo &hevent)
virtual const char * GetName()
HNurbsSurface()
Definition: HOpCreateNurbs3D.h:193
virtual int OnLButtonUp(HEventInfo &hevent)
The HOpCreateNurbs3D class provides support for the interactive construction of various surface types...
Definition: HOpCreateNurbs3D.h:61
operator uses HOOPS nurbs function (HC_Insert_Nurbs)
Definition: HOpCreateNurbs3D.h:39
operator uses internal routines
Definition: HOpCreateNurbs3D.h:40
virtual HBaseOperator * Clone()
HC_KEY GetSurfaceMeshKey()
Definition: HOpCreateNurbs3D.h:293
The HBaseOperator class serves as a base for classes which handle user input and operate on the scene...
Definition: HBaseOperator.h:65
The HPoint class is the data type of a three-dimensional point.
Definition: HGlobals.h:126
The HBaseView class defines and manages a view of model information.
Definition: HBaseView.h:337
The HEventInfo class stores and manages event information.
Definition: HEventInfo.h:214
virtual int OnLButtonDown(HEventInfo &hevent)
HSurfaceType
Definition: HOpCreateNurbs3D.h:37
The HNurbsSurface class encapsulates a NURBS surface or Chaking subdivision surface.
Definition: HOpCreateNurbs3D.h:188
operator creates surface based on chakin subdivision scheme
Definition: HOpCreateNurbs3D.h:41