Plugin, need help!

I want to make the properties editable in Edit mode, kind of like NURBS are. How would I do that?

import math
import bpy
import mathutils

bl_info = \
    {
        "name" : "Hermite Maker",
        "author" : "Yoshimaster96 <[email protected]>",
        "version" : (1, 0, 0),
        "blender" : (2, 5, 7),
        "location" : "View 3D > Edit Mode > Tool Shelf",
        "description" :
            "Generate a hermite mesh",
        "warning" : "",
        "wiki_url" : "",
        "tracker_url" : "",
        "category" : "Add Mesh",
    }

def f1(x):
    return (2*x*x*x - 3*x*x + 1)

def f2(x):
    return (-2*x*x*x + 3*x*x)

def f3(x):
    return (x*x*x - 2*x*x + x)

def f4(x):
    return (x*x*x - x*x)

class HermiteMakerPanel(bpy.types.Panel):
    bl_space_type = "VIEW_3D"
    bl_region_type = "TOOLS"
    bl_context = "objectmode"
    bl_category = "Create"
    bl_label = "Add Hermite"

    def draw(self, context):
        TheCol = self.layout.column(align=True)
        TheCol.operator("mesh.make_hermite", text="Add Hermite")
        TheCol.prop(context.scene, "make_hermite_p1")
        TheCol.prop(context.scene, "make_hermite_p2")
        TheCol.prop(context.scene, "make_hermite_p3")
        TheCol.prop(context.scene, "make_hermite_p4")
        TheCol.prop(context.scene, "make_hermite_u1")
        TheCol.prop(context.scene, "make_hermite_u2")
        TheCol.prop(context.scene, "make_hermite_u3")
        TheCol.prop(context.scene, "make_hermite_u4")
        TheCol.prop(context.scene, "make_hermite_v1")
        TheCol.prop(context.scene, "make_hermite_v2")
        TheCol.prop(context.scene, "make_hermite_v3")
        TheCol.prop(context.scene, "make_hermite_v4")
    #end draw

#end HermiteMakerPanel

class MakeHermite(bpy.types.Operator):
    bl_idname = "mesh.make_hermite"
    bl_label = "Add Hermite"
    bl_options = {"UNDO"}

    def invoke(self, context, event):
        Vertices = []
        for i in range(16):
            for j in range(16):
                fi = i/15
                fj = j/15
                xi1 = context.scene.make_hermite_p1[0]*f1(fi)+context.scene.make_hermite_p2[0]*f2(fi)+context.scene.make_hermite_u1[0]*f3(fi)+context.scene.make_hermite_u2[0]*f4(fi)
                xi2 = context.scene.make_hermite_p3[0]*f1(fi)+context.scene.make_hermite_p4[0]*f2(fi)+context.scene.make_hermite_u3[0]*f3(fi)+context.scene.make_hermite_u4[0]*f4(fi)
                xi3 = context.scene.make_hermite_v1[0]*f1(fi)+context.scene.make_hermite_v2[0]*f2(fi)
                xi4 = context.scene.make_hermite_v3[0]*f1(fi)+context.scene.make_hermite_v4[0]*f2(fi)
                yi1 = context.scene.make_hermite_p1[1]*f1(fi)+context.scene.make_hermite_p2[1]*f2(fi)+context.scene.make_hermite_u1[1]*f3(fi)+context.scene.make_hermite_u2[1]*f4(fi)
                yi2 = context.scene.make_hermite_p3[1]*f1(fi)+context.scene.make_hermite_p4[1]*f2(fi)+context.scene.make_hermite_u3[1]*f3(fi)+context.scene.make_hermite_u4[1]*f4(fi)
                yi3 = context.scene.make_hermite_v1[1]*f1(fi)+context.scene.make_hermite_v2[1]*f2(fi)
                yi4 = context.scene.make_hermite_v3[1]*f1(fi)+context.scene.make_hermite_v4[1]*f2(fi)
                zi1 = context.scene.make_hermite_p1[2]*f1(fi)+context.scene.make_hermite_p2[2]*f2(fi)+context.scene.make_hermite_u1[2]*f3(fi)+context.scene.make_hermite_u2[2]*f4(fi)
                zi2 = context.scene.make_hermite_p3[2]*f1(fi)+context.scene.make_hermite_p4[2]*f2(fi)+context.scene.make_hermite_u3[2]*f3(fi)+context.scene.make_hermite_u4[2]*f4(fi)
                zi3 = context.scene.make_hermite_v1[2]*f1(fi)+context.scene.make_hermite_v2[2]*f2(fi)
                zi4 = context.scene.make_hermite_v3[2]*f1(fi)+context.scene.make_hermite_v4[2]*f2(fi)
                x = xi1*f1(fj)+xi2*f2(fj)+xi3*f3(fj)+xi4*f4(fj)
                y = yi1*f1(fj)+yi2*f2(fj)+yi3*f3(fj)+yi4*f4(fj)
                z = zi1*f1(fj)+zi2*f2(fj)+zi3*f3(fj)+zi4*f4(fj)
                Vertices.append(mathutils.Vector((x,y,z)))
        Faces = []
        for i in range(15):
            for j in range(15):
                Faces.append([i+(j*16),1+i+(j*16),17+i+(j*16),16+i+(j*16)])
        NewMesh = bpy.data.meshes.new("Hermite")
        NewMesh.from_pydata \
          (
            Vertices,
            [],
            Faces
          )
        NewMesh.update()
        NewObj = bpy.data.objects.new("Hermite", NewMesh)
        context.scene.objects.link(NewObj)
        return {"FINISHED"}
    #end invoke

#end MakeHermite

def register() :
    bpy.utils.register_class(MakeHermite)
    bpy.utils.register_class(HermiteMakerPanel)
    bpy.types.Scene.make_hermite_p1 = bpy.props.FloatVectorProperty \
      (
        name = "Point 1",
        default = (-1.0,-1.0,0.0)
      )
    bpy.types.Scene.make_hermite_p2 = bpy.props.FloatVectorProperty \
      (
        name = "Point 2",
        default = (1.0,-1.0,0.0)
      )
    bpy.types.Scene.make_hermite_p3 = bpy.props.FloatVectorProperty \
      (
        name = "Point 3",
        default = (-1.0,1.0,0.0)
      )
    bpy.types.Scene.make_hermite_p4 = bpy.props.FloatVectorProperty \
      (
        name = "Point 4",
        default = (1.0,1.0,0.0)
      )
    bpy.types.Scene.make_hermite_u1 = bpy.props.FloatVectorProperty \
      (
        name = "U Tangent 1",
        default = (1.0,0.0,0.0)
      )
    bpy.types.Scene.make_hermite_u2 = bpy.props.FloatVectorProperty \
      (
        name = "U Tangent 2",
        default = (1.0,0.0,0.0)
      )
    bpy.types.Scene.make_hermite_u3 = bpy.props.FloatVectorProperty \
      (
        name = "U Tangent 3",
        default = (1.0,0.0,0.0)
      )
    bpy.types.Scene.make_hermite_u4 = bpy.props.FloatVectorProperty \
      (
        name = "U Tangent 4",
        default = (1.0,0.0,0.0)
      )
    bpy.types.Scene.make_hermite_v1 = bpy.props.FloatVectorProperty \
      (
        name = "V Tangent 1",
        default = (0.0,1.0,0.0)
      )
    bpy.types.Scene.make_hermite_v2 = bpy.props.FloatVectorProperty \
      (
        name = "V Tangent 2",
        default = (0.0,1.0,0.0)
      )
    bpy.types.Scene.make_hermite_v3 = bpy.props.FloatVectorProperty \
      (
        name = "V Tangent 3",
        default = (0.0,1.0,0.0)
      )
    bpy.types.Scene.make_hermite_v4 = bpy.props.FloatVectorProperty \
      (
        name = "V Tangent 4",
        default = (0.0,1.0,0.0)
      )
#end register

def unregister() :
    bpy.utils.unregister_class(MakeHermite)
    bpy.utils.unregister_class(HermiteMakerPanel)
    del bpy.types.Scene.make_hermite_p1
    del bpy.types.Scene.make_hermite_p2
    del bpy.types.Scene.make_hermite_p3
    del bpy.types.Scene.make_hermite_p4
    del bpy.types.Scene.make_hermite_u1
    del bpy.types.Scene.make_hermite_u2
    del bpy.types.Scene.make_hermite_u3
    del bpy.types.Scene.make_hermite_u4
    del bpy.types.Scene.make_hermite_v1
    del bpy.types.Scene.make_hermite_v2
    del bpy.types.Scene.make_hermite_v3
    del bpy.types.Scene.make_hermite_v4
#end unregister

if __name__ == "__main__" :
    register()
#end if