NURBS Surface TrimsTrimmed NURBS surfaces are followed by a terminated list of surface trims. Much like the top-level opcodes, surface trims have a format that is dictated by the opcode character. The main differences are that they always apply to NURBS surfaces, and there are few enough of them to be described in just this one document. Trim objects generally specify a closed region on the parameter space of the NURBS surface. The only exception to this is are trim objects that are given as part of a trim collection, in which case they describe one section of a piecewise closed region. In addition do describing the closed region, they dictate the operation that is to be done on that area, either "keep" or "remove". "Remove" operations cut away the closed region. "Keep" operations cut away everything except the region. The operation control bit (0x01) on objects that are part of an NS_Trim_Collection is ignored, since only collectively do such objects specify a closed region. NURBS surfaces are parameterized from 0 to 1 always, so control vertices should be specified with that in mind. Note that this contrasts with some solid modelling kernels, which parameterize their surfaces with respect to their knots. Trim opcodes:
Trim controls:
NS_Trim_Termination (0)no operands. NS_Trim_Poly (1)Byte control_bits, Long control_count, (2 x control_count) x Float control_points,
NS_Trim_Curve (2)
Byte options,
NS_Trim_Collection (3)Byte control_bits, Variable trim list
|