|
Action:
|
Increases the polynomial degree of a deformable model's basis functions.
|
|
|
Filename:
|
adm/ds_scm/dsscm.cxx
|
|
|
APIs:
|
api_dm_get_attrib_dm2acis
|
|
|
Syntax:
|
(ds:elevate-degree owner [target=1] [continuity-flag=0])
|
|
|
Arg Types:
|
owner
|
entity
|
|
target
|
integer
|
|
continuity-flag
|
integer
|
|
|
Returns:
|
unspecified
|
|
|
Description:
|
Increments by one the degree of the basis functions of the
target deformable model belonging to
owner.
|
|
|
The
target argument specifies which deformable model to use in a patch hierarchy. Valid values for
target are:
|
|
|
1
|
= active deformable model
|
|
2
|
= root deformable model
|
|
-1
|
= active deformable model and offspring
|
|
-2
|
= root deformable model and offspring
|
|
|
Otherwise, the
target is the deformable model whose tag identifier equals
target.
|
|
|
The
continuity-flag specifies if the element-to-element continuity level is to be preserved or changed when the element degree is incremented. Higher degree elements can support higher element-to-element continuity. When
continuity-flag is 0, the inter-element continuity is preserved. When
continuity-flag is 1, the inter-element continuity is increased.
|
|
|
Only when
continuity-flag is 0 and inter-element continuity is preserved can the returned shape exactly equal the input shape. Changing the inter-element continuity will change the shape by a small amount, which may be surprisingly large for some cases of NURB (or NUB) curves and surfaces.
|
|
|
When cont-flag is 1, one degree of freedom (dof) is added to each axis of the surface. So a 6x6 control point surface will become a 7x7 control point surface. So if a bi-cubic 6x6 control point surface initially composed of an array of 3x3 elements is used as input, then the modified surface is a 9x9 control point surface.
|
|
|
owner ACIS face or edge on which the deformable model lives.
|
|
|
target specifies which deformable model to use in a patch hierarchy.
|
|
|
continuity-flag specifies if the element-to-element continuity level is to be preserved or changed when the element degree is incremented.
|
|
|
Example:
|
; ds:elevate-degree
|
|
; Create a low-order B-spline face and use this
|
|
; function to increase the order of its deformable
|
|
; model. Make a low-order test face.
|
|
; (4x4 control points, x and y side length = 36)
|
|
(define dsmodel1 (ds:test-face 6 6 36 36 0))
|
|
;; dsmodel1
|
|
(define erase (entity:erase dsmodel1))
|
|
;; erase
|
|
(define drawstate (ds:set-draw-state dsmodel1 2
|
|
|
ds-draw-cpts))
|
|
;; drawstate
|
|
; The face should only have 4 (2x2) control points.
|
|
; Increase the basis polynomial degree to 3.
|
|
(ds:elevate-degree dsmodel1 2)
|
|
;; ()
|
|
(ds:get-shape-dofs dsmodel1)
|
|
;; (81 9 9 (1.73686342001475e-013
|
|
; -8.49755921010498e-01
|
|
; .
|
|
; . (entire return is displayed in Scheme window)
|
|
; .
|
|
;; 000000000041 ...))
|
|
(ds:elevate-degree dsmodel1 2)
|
|
;; ()
|
|
; The face now has 16 (4x4) control points.
|
|
; Use ds:debug to examine the changes.
|