Action:
|
Creates a new pattern by applying a periodic keep-filter to an existing pattern.
|
|
Prototype:
|
outcome api_periodic_keep_pattern (
|
|
|
pattern*& pat,
|
// created pattern
|
|
|
const pattern& in_pattern,
|
// input pattern
|
|
|
const logical* keep,
|
// array of keep values
|
|
|
int period,
|
// # of keep values
|
|
|
int which_dim,
|
// dimension for filter
|
|
|
logical merge
|
// merge flag
|
|
|
|
= TRUE,
|
|
|
AcisOptions* ao = NULL
|
// acis options
|
|
|
);
|
|
Includes:
|
#include "kernel/acis.hxx"
|
|
#include "baseutil/logical.h"
|
|
#include "kernel/kernapi/api/api.hxx"
|
|
#include "kernel/kernutil/law/pattern.hxx"
|
|
#include "kernel/kernutil/law/pattern_api.hxx"
|
|
#include "kernel/kernapi/api/acis_options.hxx"
|
|
Description:
|
Applies a periodic keep-filter to an existing pattern, merging with any existing keep law or, optionally (with
merge=FALSE), replacing it. The argument
keep is the Boolean list of successive keep values, so that the size of the list (period) is the periodicity of the filter. The argument
which_dim specifies the dimension within which the filter is applied.
|
|
|
The following code snippet shows an example of how this API can be used.
|
|
|
// Create a pattern
|
|
pattern* pat = NULL;
|
|
SPAvector x_vec(4.0, 0, 0);
|
|
int num_x = 6;
|
|
SPAvector y_vec(0, 2.0, 0);
|
|
int num_y = 12;
|
|
SPAvector z_vec(0, 0, 3.0);
|
|
int num_z = 4;
|
|
check_outcome(result = api_linear_pattern(pat, x_vec, num_x, y_vec, num_y, z_vec, num_z));
|
|
|
// Modify the pattern
|
|
pattern* mod_pat = NULL;
|
|
logical keep[3];keep[0] = TRUE;
|
|
keep[1] = TRUE;
|
|
keep[2] = FALSE;
|
|
int which_dim = 1;
|
|
check_outcome(result = api_periodic_keep_pattern(mod_pat, *pat,
|
keep, 3, which_dim));
|
|
|
// Create a prism
|
|
BODY* prism = NULL;
|
|
double height = 1.0;
|
|
double maj_rad = 1.0;
|
|
double min_rad = 0.5;
|
|
int num_sides = 3;
|
|
check_outcome(result = api_make_prism(height, maj_rad, min_rad, num_sides, prism));
|
|
|
// Apply the pattern to the prism
|
|
check_outcome(result = api_set_entity_pattern(prism, mod_pat));
|
|
|
// Clean up
|
|
pat->remove();
|
|
mod_pat->remove();
|
|
Library:
|
kernel
|
|
Filename:
|
kern/kernel/kernutil/law/pattern_api.hxx
|
|
Effect:
|
Changes model
|