ds:elevate-degree
List of: Scheme Extensions
Subjects: Deformable Surfaces
Contents: ACIS Deformable Modeling

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.
PDF/ADM/05SCD.PDF
HTM/DATA/ADM/ADM/05SCD/0002.HTM