17 #ifndef _OpCreateNurbs3D_H
18 #define _OpCreateNurbs3D_H
119 static void InsertNurbsFromMessage(
const char *in_data,
unsigned int data_length,
HBaseView *m_pView);
130 static void EmitModifyControlPointMessage(
HBaseView *pView,
HC_KEY key,
int control_point,
float x,
float y,
float z);
138 static void ModifyControlPointFromMessage(
const char *in_data,
unsigned int data_length,
HBaseView *pView);
148 static void EmitFinishNurbsEditing(
HBaseView *pView,
HC_KEY key,
bool emit_message);
156 static void FinishNurbsEditingFromMessage(
const char *in_data,
unsigned int data_length,
HBaseView *pView);
196 m_tesselationLevel = 0;
199 m_vertexDistance = 0;
201 m_surfaceMeshKey = 0;
206 H_SAFE_DELETE_ARRAY(m_pVertices);
207 H_SAFE_DELETE_ARRAY(m_pNurbs);
214 void Init(HC_KEY key);
229 int num_u_vertices,
int num_v_vertices,
230 int degree,
int tesselation_level,
247 void DisplayVertices();
257 void EnableSelectability();
262 void DisableSelectability();
271 void UpdateVertex(
int vertexnum,
float x,
float y,
float z);
278 void ShowVertex(
int vertexnum,
HPoint &v);
285 void CreateDefaultVertices(
HPoint * center,
HPoint * axis);
298 int m_tesselationLevel;
299 float m_vertexDistance;
305 void UpdateVertices();
306 void UpdateParameters();
307 float nip(
int i,
int p,
float u,
float *uv);
308 void InsertNurbsMesh(
HPoint *pNurbs);
309 void InsertChakinSubdivionSurface(
HPoint *pNurbs);
311 void SubdivideSurface(
HPoint *old_surface,
HPoint *ssurf,
int xlen,
int ylen,
int &new_xlen,
int &new_ylen,
bool xrefine);
313 void GetVerticesFromHOOPS();
314 void GetParametersFromHOOPS();
virtual int OnLButtonDownAndMove(HEventInfo &hevent)
virtual const char * GetName()
HNurbsSurface()
Definition: HOpCreateNurbs3D.h:188
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:288
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:183
operator creates surface based on chakin subdivision scheme
Definition: HOpCreateNurbs3D.h:36